关于selenium各种操作语句(方便查询便携版)

定位方法 #功能from selenium import webdriver#载入驱动
from selenium.webdriver.common.by import By
#新版载入by,旧版的find_element_by_id语句一般会被划掉,然后给你提示说语句已淘汰,不过目前还是可以运行,只是代码不好看。#启动驱动的两种写法:
with webdriver.Chrome() as driverdriver=chromedriver.chrome()#八大基础定位
find_element(By.ID,'value')	#定位ID
find_element(By.NAME,'value')	#定位name
find_element(By.CLASS_NAME,'value')	#定位class
find_element(By.TAG_NAME,'value')	#定位tag功能标签
find_element(By.LINK_TEXT,'value')	#定位link
find_element(By.PARTIAL_LINK_TEXT,'value')	#定位局部link,模糊查找
find_element(By.CSS_SELECTOR,'value')	#定位CSS多属性组合
find_element(By.XPATH,'value')	#定位多属性组合#上下左右模糊定位法
above()	#定位到现元素上面的元素
below()	#定位到现元素下面的元素
toLeftOf()	#定位到现元素左面的元素
tpRightOf()	#定位到现元素右面的元素
near()	#定位到最多距现元素50个像素远的元素#输入、拖放、点击
find_element().send_keys("内容")	#定位并输入文本"source = driver.find_element(By.ID, ""source"")
target = driver.find_element(By.ID, ""target"")
ActionChains(driver).drag_and_drop(source, target).perform()"	#拖放功能find_element().click()	#定位并点击#创建、打开、网址、前进、后退、刷新以及读取页面标题
driver = webdriver.Chrome()	#创建Chrome浏览器对象
driver.get("https://example.org") 	#打开网页
driver.current_url	#获取当前网址
driver.back()	#按下浏览器的后退按钮
driver.forward()	#按下浏览器的前进按钮
driver.refresh()	# 刷新当前网页
driver.title	#从浏览器中读取当前页面标题#handle、跳转、关闭、退出、嵌网操作
driver.current_window_handle	#当打开一个新窗口时,获取该窗口的处理权"find_element().click()
driver.switch_to.window(window_handle)"	#当点击一个链接跳转到新窗口时,需要switch到新窗口"driver.switch_to.new_window('tab')
driver.switch_to.new_window('window')"	#创建新窗口并switch"driver.close()
driver.switch_to.window(original_window)"	#关闭一个窗口或tabdriver.quit()	#退出浏览器driver.switch_to.frame(1)	#Frames和Iframes,点击iframes中的按钮driver.switch_to.default_content()	#退出一个frame或frameset#窗口大小、位置、最大化、最小化、全屏
"size = driver.get_window_size()
width1 = size.get(""width"")
height1 = size.get(""height"")  "	#获取窗口大小driver.set_window_size(1024, 768)	#设置窗口大小"position = driver.get_window_position()
x1 = position.get('x')
y1 = position.get('y') "	#获得窗口位置driver.set_window_position(0, 0)	#设置窗口位置driver.maximize_window()	#最大化窗口driver.minimize_window()	#最小化窗口driver.fullscreen_window()	#窗口全屏#网页加载等待,还有一种流式等待没搞懂,这里忽略
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC#条件等待
"WebDriverWait(driver, timeout=3).until(some_condition) "	#显式等待网页加载完成
driver.implicitly_wait(10)	#隐式等待#警报处理、处理确认和处理提示
"river.find_element(By.LINK_TEXT, ""See an example alert"").click()
alert = wait.until(expected_conditions.alert_is_present())
text = alert.text
alert.accept()"	#处理警报"driver.find_element(By.LINK_TEXT, ""See a sample confirm"").click()
wait.until(expected_conditions.alert_is_present())
alert = driver.switch_to.alert
alert.dismiss()"	#处理确认"driver.find_element(By.LINK_TEXT, ""See a sample prompt"").click()
wait.until(expected_conditions.alert_is_present()
alert = Alert(driver)
alert.send_keys(""Selenium"")
alert.accept()"	#处理提示#HTTP代理
"PROXY = ""<HOST:PORT>""
webdriver.DesiredCapabilities.CHROME['proxy'] = {""httpProxy"": PROXY,""ftpProxy"": PROXY,""sslProxy"": PROXY,""proxyType"": ""MANUAL"",}"	#Http代理#三种加载方式
from selenium.webdriver.chrome.options import Options#载入optiions
options.page_load_strategy = 'normal'	#normal(网页完全加载)
options.page_load_strategy = 'eager'	#eager(只加载主页面,忽略表格、图像和子框架)
options.page_load_strategy = 'none'	#none(仅加载主页面)#镶嵌查找,叠中叠
driver.find_element(By.NAME, "q")	#查找元素"for e in elements:print e.text  "	#查找多元素变量.find_element(By.NAME, "q")	#从元素下查找单个元素"elements = element.find_elements(By.TAG_NAME, 'p')for e in elements:print e.text "	#从元素下查找多个元素"driver.find_element(By.CSS_SELECTOR, '[name=""q""]').send_keys(""webElement"")
river.switch_to.active_element.get_attribute(""title"")print attr"	#获取当前锚定元素#键盘组合操作
from selenium.webdriver.common.keys import Keys#载入keydriver.find_element(By.NAME, "q").send_keys("webdriver" + Keys.ENTER)	
#sendKeys输入+enter"driver.find_element(By.NAME, ""q"").send_keys(""webdriver"" + Keys.ENTER)
webdriver.ActionChains(driver).key_down(Keys.CONTROL).send_keys(""a"").perform()"	#keyDown 输入+enter,再ctrl+aaction.key_down(Keys.SHIFT).send_keys_to_element(search, "qwerty").key_up(Keys.SHIFT).send_keys("qwerty").perform()	#keyUp长按.Clear()	#clear清除内容

参考原文如下,有需要请转原文链接,写得很详细,本文主要为便捷查询所用,偏简略。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/whitedrogen/article/details/106216401

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解释RocketMQ的“消息顺序”特性

RocketMQ的“消息顺序”特性指的是它能按照发送方的预期&#xff0c;保持消息在生产和消费过程中的顺序一致性。这一特性对于某些特定的应用场景至关重要&#xff0c;比如金融交易、订单处理等&#xff0c;在这些场景中&#xff0c;消息的顺序性对于业务逻辑的正确性有着决定性…

解析OceanBase v4.2 Oracle 语法兼容之 LOCK TABLE

背景 在OceanBase V4.1及之前的版本中&#xff0c;尽管已经为Oracle租户兼容了LOCK TABLE相关的语法&#xff0c;包括单表锁定操作&#xff0c;和WAIT N&#xff0c; NOWAIT 关键字。但使用时还存在一些限制。例如&#xff1a;LOCK TABLE只能针对单表进行锁定&#xff0c;并不…

Leetcode287_寻找重复数

1.leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.题目描述 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有 一个重复…

URL GET +号后台接收成空格

问题&#xff1a;参数spdmwhbs001 其中包含URL特殊符号 如果用GET请求方式不做任何不处理那么浏览器自动将转为%20 请求链接为 details?spdmwhbs%20001&limitKcysType1 后台接收到的参数为 whbs 001 &#xff0c;自动将号转成空格了。 尝试解决&#xff08;失败&#…

Redis中的事务(二)

事务 事务的实现 执行事务 当一个处于事务状态的客户端向服务器发送EXEC命令时&#xff0c;这个EXEC命令将立即被服务器执行&#xff0c;服务器会遍历这个客户端的事务队列&#xff0c;执行队列中保存的所有命令&#xff0c;最后将执行命令所得的结果全部返回给客户端。 例…

kubernets 节点数量限制修改

kubelet节点pod数量限制 在 Kubernetes 中&#xff0c;kubelet 的 --max-pods 参数默认值是 110。这意味着每个节点上最多可以运行 110 个 Pod。这个默认值是为了在大多数情况下提供一个合理的默认限制&#xff0c;以避免节点资源被过度占用。 如果需要修改默认的 --max-pods…

STM32学习和实践笔记(17):STM32外部中断(EXTI)的整体介绍

1.外部中断介绍 1.1 EXTI简介 STM32F10x外部中断/事件控制器&#xff08;EXTI&#xff09;包含多达 20 个用于产生事件/中断请求的边沿检测器。&#xff08;事件与中断的区别&#xff0c;可参看STM32---中断与事件的区别_中断和事件的区别-CSDN博客&#xff09; 具体有哪些&a…

C语言结课实战项目_贪吃蛇小游戏

目录 最终实现效果&#xff1a; 实现基本的功能&#xff1a; 根据游戏进程解释代码&#xff1a; 游戏初始化&#xff1a; 首先进入游戏&#xff0c;我们应该将窗口名称改为 “贪吃蛇” 并将光标隐藏掉。再在中间打印游戏信息。 之后我们要把地图打印出来&#xff1a; 然后…

Redis(三) 事务与发布订阅

结合前两期 Redis(一) Redis简介(Redis(一) Redis简介-CSDN博客) Redis(二) 可编程性(Redis(二) 可编程性-CSDN博客) 目录 事务在 Redis 中的运作方式 用法 事务中的错误 回滚 放弃命令队列 使用检查和设置的乐观锁定 WATCH解释 使用 WATCH 实现 ZPOP Redis 发布/订…

Python的pytest框架(4)--参数化测试

在 pytest 测试框架中&#xff0c;参数化测试&#xff08;Parametrized Testing&#xff09;意味着将一个测试用例设计为能够接受不同输入数据&#xff08;参数&#xff09;并分别执行&#xff0c;以验证被测试代码在面对多种情况时的行为是否符合预期。参数化测试的核心理念是…

DAY28| 93. 复原IP地址 ,79.子集 ,90.子集II

文章目录 93.复原IP地址78.子集90.子集II 93.复原IP地址 文字讲解&#xff1a;复原IP地址 视频讲解&#xff1a;复原IP地址 **状态&#xff1a;**此题调试了几次ok&#xff0c;与昨天的分割回文子串相比&#xff0c;就是在判断终止条件处需要处理&#xff1b; 思路&#xff1a;…

设计模式- 单例模式(Singleton)结构|实现方式|优缺点|场景

目录 设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型 工厂方法 抽象工厂模式 单例模式 建造者模式 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;其…

rust : condvar中一对一和多对一模式初探

condvar是不经常碰到的&#xff0c;但其实在tokio之类库中&#xff0c;还是非常核心的作用。 想进一步体会condvar的使用&#xff0c;还是从场景出发。 一、一个通知发送者&#xff0c;一个接收者 假定一个员工收到一个任务&#xff0c;就是模拟是一个时间片&#xff0c;到时…

【Qt】设置QT标准对话框为中文字体

设置QT标准对话框为中文字体 一、问题二、解决方法1、找到Qt内置的翻译文件 qt_zh_CN.qm2、在代码中加载该文件 一、问题 在Qt中我们使用的标准对话框都是英文&#xff0c;例如下面的 字体选择对话框&#xff0c;但是实际中我们需要构建的是中文对话框。 所以我们需要使用Qt官…

19篇 vue3进阶

一 基础特性 1. **Composition API**&#xff1a;引入了组合式 API&#xff0c;允许以函数的方式组织组件逻辑。 2. **响应式系统**&#xff1a;使用 Proxy 作为其响应式系统的基础&#xff0c;提供更精确的依赖追踪。 3. **模板语法**&#xff1a;保留了 Vue 2 的模板语法…

MySQL InnoDB事务隔离级别与锁机制深入解析

引言 在当今的数据库系统中&#xff0c;事务管理是确保数据一致性和完整性的关键。事务是数据库操作的基本单元&#xff0c;它将一系列的数据库操作组合成一个逻辑工作单元&#xff0c;要么全部成功执行&#xff0c;要么全部失败回滚&#xff0c;这就是所谓的ACID属性&#xf…

js自动缩放页面,html自动缩放页面,大屏自动缩放页面,数字看板自动缩放页面,大数据看板自动缩放页面

js自动缩放页面&#xff0c;html自动缩放页面&#xff0c;大屏自动缩放页面&#xff0c;数字看板自动缩放页面&#xff0c;大数据看板自动缩放页面 由纯JS实现 html代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"…

vue 注册自定义指令,对输入框输入内容过滤(区分中英文)

注册vue全局指令 对el-input输入框进行最大长度过滤&#xff08;区分中英文&#xff09; 过滤空格 注册全局指令 main.js /*** 输入框最长输入限制* param {*} e 文本内容* param {number} maxlength 最大字符长度* param {boolean} trim 是否过滤空格* returns {string} 最…

acwing算法提高之图论--有向图的强连通分量

目录 1 介绍2 训练 1 介绍 本博客介绍有向图的强连通分量的题目。 连通分量&#xff1a;是针对有向图的一个概念。对于分量中任意两个结点a、b&#xff0c;必然可以从a走到b&#xff0c;且从b走到a。 强连通分量&#xff1a;是针对有向图的一个概念。极大强连通分量&#xff…

【数据结构】单链表的头节点与尾节点

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;数据结构 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…