Selenium基本用法

news/2024/7/8 3:09:12

Selenium 提供了 8 种定位单个节点的方法,如下所示:

定位节点方法
方法 说明
find_element_by_id() 通过 id 属性值定位
find_element_by_name() 通过 name 属性值定位
find_element_by_class_name() 通过 class 属性值定位
find_element_by_tag_name() 通过 tag 标签名定位
find_element_by_link_text() 通过标签内文本定位,即精准定位。
find_element_by_partial_link_text() 通过标签内部分文本定位,即模糊定位。
find_element_by_xpath() 通过 xpath 表达式定位
find_element_by_css_selector() 通过 css 选择器定位
假设下面代码某个页面的代码片段,如下所示:

下面使用表格中提供的方法定位 input 输出框。如下所示: #创建browser是浏览器对象 browser = webdriver.Chrome() #访问某个url得到上述代码片段 browser.get('url') #通过id定义输入框 browser.dr.find_element_by_id("kw") #通过class定义 browser.find_element_by_class_name("s_ipt_wr") #通过name定位 browser.find_element_by_name("wd") #通过tag name定位: browser.find_element_by_tag_name("input") #通过xpath定位 browser.find_element_by_xpath("//*[@id='kw']") #通过css选择器定位 browser.find_element_by_css_selector("#kw") 通过 a 标签内的文本内容定位节点,如下所示: C语言中文网 hao123 示例如下: #使用全部文本内容定位链接 browser.find_element_by_link_text("c语言中文网") #使用部分文本内容定位链接 browser.find_element_by_partial_link_text("123") 如果您想定位一组元素,方法如下所示: find_elements_by_id() find_elements_by_name() find_elements_by_class_name() find_elements_by_tag_name() find_elements_by_link_text() find_elements_by_partial_link_text() find_elements_by_xpath() find_elements_by_css_selector() 定位一组元素的方法与定位单个元素类似,唯一的区别就是 element 后面多了一个 s(表示复数),因此上述方法的返回值是一个列表,您可以使用 for 循环拿到所有的元素节点。 控制浏览器 Selenium 可以操控浏览器的窗口大小、刷新页面,以及控制浏览器的前进、后退等 1) 设置浏览器窗口大小、位置 from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.baidu.com") #参数数字为像素点 driver.set_window_size(480, 800) #设置窗口位置 driver.set_window_position(100,200) #同时设置窗口的大小和坐标 driver.set_window_rect(450,300,32,50) #退出浏览器 driver.quit() 2) 控制网页前进、后退、刷新页面 from selenium import webdriver driver = webdriver.Chrome() # 访问C语言中文网首页 first_url= 'http://c.biancheng.net' driver.get(first_url) # 访问c语言教程 second_url='http://c.biancheng.net/c/' driver.get(second_url) # 返回(后退)到c语言中文网首页 driver.back() # 前进到C语言教程页 driver.forward() # 刷新当前页面相当于F5 driver.refresh() # 退出/关闭浏览器 driver.quit() WebDriver常用方法 上文中介绍了如何定位元素,以及如何设置浏览的大小、位置。 定位元素节点只是第一步, 定位之后还需要对这个元素进行操作, 比如单击按钮,或者在输入框输入文本 , 下面介绍 WebDriver 中的最常用方法: # 请求url get(url) # 模拟键盘输入文本 send_keys (value) # 清除已经输入的文本 clear(): # 单击已经定位的元素 click(): # 用于提交表单,比如百度搜索框内输入关键字之后的“回车” 操作 submit(): #返回属性的属性值,返回元素的属性值,可以是id、name、type 或其他任意属性 get_attribute(name) # 返回布尔值,检查元素是否用户可见,比如 display属性为hidden或者none is_displayed() ![请添加图片描述](https://img-blog.csdnimg.cn/f8095a7b8ad6482c94e74d8053851d27.png)

http://lihuaxi.xjx100.cn/news/1247046.html

相关文章

问卷调查工具专业排行榜

调查问卷是传播学领域的常用方法,是同时从大量人群中收集信息的最有效工具之一。它们被用于从学术研究到市场研究的各种环境中。问卷调查的一个关键优势是能够从不同的人群中快速收集大量数据。然而,创建、分发和分析调查问卷可能是一项既耗时又复杂的任…

Vue打包资源按时间戳方式

问题: 由于默认的Vue打包是基于资源文件的hash模式,但是由于浏览器缓存,在实际发版过程中会出现引用老版本的问题。 解决: 修改Vue资源打包,在资源文件后加上打包时间戳,以保证每次发版后,所有…

使用Vision Transformers实现高效语义分割的内容感知共享Token

文章目录 Content-aware Token Sharing for Efficient Semantic Segmentation with Vision Transformers摘要本文方法Content-aware token sharing frameworkContent-aware token sharing policy 实验结果 Content-aware Token Sharing for Efficient Semantic Segmentation wi…

数据库架构是否该随着公司估值一起变化?

原文|The growing pains of database architecture 作者|Tim Liang, Software Engineer at Figma 2020 年,因为 Figma 不断加入新功能,筹备第二条产品线和用户不断增长导致数据库流量每年以 3x 速度增长,我们的基础设…

shell脚本变量-特殊变量

目录 特殊变量:$n案例需求 特殊变量:$#案例需求 特殊变量:$*、$案例需求 特殊变量:$?特殊变量:$$ 特殊变量:$n 语法 $n含义: 用于接收脚本文件执行时传入的参数 $0 用于获取当前脚…

2023年CPSM-3中级项目管理专业人员认证招生简章

CPSM-3中级项目管理专业人员认证,是中国标准化协会(全国项目管理标准化技术委员会秘书处)联合中国国际人才交流基金会,面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才…

Unity3D:场景视图视图选项

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 “场景视图视图选项”工具栏 您可以使用“场景视图视图选项”工具栏“叠加”来选择用于查看场景以及启用/禁用照明和音频的各种选项。这些控件仅在开发期间影响场景视图&#xff0…

无人机上仅使用CPU实时运行Yolov5(OpenVINO实现)(下篇)

​上期中我们讲了Yolov5的前两节环境配置及简单运行,在本期中我们带来后面两节在不同处理器下的实验数据及如何训练自己的模型。​ 三、在不同处理器上的延迟与效果 为了查看Yolov5在不同设备上的延迟与效果,下面我们对Inter的i3、i5、i7三种处理器在同…