Selenium自动化测试_元素定位
Selenium 提供了8个元素定位的API,可以分为三种:
1. 标签定位策略2. 属性定位策略
3. 通用定位策略
find_element 用来定位单个元素
find_elements 用来定位多个元素
1. 标签定位策略
LINK_TEXT :精确匹配
PARTIAL_LINK_TEXT :模糊匹配
1 driver.get("http://101.34.221.219:8010/") # 控制浏览器 2 el = driver.find_element(By.PARTIAL_LINK_TEXT, "登") # 定位元素 3 print(el.tag_name, el.text) # 打印元素的信息
2. 属性定位策略
ID NAME TAG_NAME CLASS_NAME
1 <input 2 id="search-input" 3 name="wd" 4 type="text" 5 placeholder="其实搜索很简单^_^ !" 6 value="" 7 autocomplete="off" 8 >
1 el = driver.find_element(By.TAG_NAME, "input") 2 print(el.tag_name, el.text) # 打印元素的信息 3 el = driver.find_element(By.ID, "search-input") 4 print(el.tag_name, el.text) # 打印元素的信息 5 el = driver.find_element(By.NAME, "wd") 6 print(el.tag_name, el.text) # 打印元素的信息
3. 通用定位策略
对于大部分的定位策略,其底层,是使用CSS或者XPath实现。
XPath 是一种查询语言,支持逻辑表达式和函数,可以实现复杂元素的动态定位,可以用于App自动化测试的定位。
1 //*[@id="search-input"] 2 /html/body/div[3]/div/div[3]/form/div/input 3 /html/body/div/../div
XPath 语法
/ (开头) :根路径
// :任一级
/ (在中间) :下一级
. :当前节点(同级)
[n] :序号 表示同级元素的序号
@ :属性 ,//input[@name="wd"]
../:上一级目录
XPath 函数
text : 精确匹配 $x("//*[text()='iphoneX新品发布了']")
contains :模糊匹配 $x("//*[contains(@id,'new')]")
starts-with:开头一致 $x("//*[starts-with(text(),'iphoneX新品')]")
新版selenium:find_element(By.XPATH, '//div[@id="zhangsan"]')
这个世界上最大的能量就是心能,为什么有的人高位截肢了,他还会感到膝盖疼,西医解释不了,那是因为他心里还有膝盖。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?