Selenium - 元素定位

XPATH 定位进阶

元素示例

属性定位

# xpath 通过id属性定位
driver.find_element_by_xpath("//*[@id='kw']") # xpath 通过name属性定位
driver.find_element_by_xpath("//*[@name='wd']") # xpath 通过class属性定位
driver.find_element_by_xpath("//*[@class='s_ipt']")

其他属性定位

# xpath 通过其他属性定位
driver.find_element_by_xpath("//*[@autocomplete='off']")

组合定位

# xpath 通过标签与id属性的组合
driver.find_element_by_xpath("//input[@id='kw']") # xpath 通过标签与class属性组合
driver.find_element_by_xpath("//input[@class='s_ipt']") # xpath 通过标签与其它属性组合
driver.find_element_by_xpath("//input[@name='wd']") # xpath 通过标签与其它属性组合
driver.find_element_by_xpath("//input[autocomplete='off']")

文本定位

# xpath 通过标签与页面字符
driver.find_element_by_xpath("//span[text()='页面文字']")

逻辑运算定位

# xpath 实现逻辑运算,同时匹配两个属性
driver.find_element_by_xpath("[//input[@id='kw' and @class='s_ipt']")

路径定位

# xpath 相对路径定位
driver.find_element_by_xpath("//form/span/inpu[@id='kw']") # xpath 相对路径定位(通过父属性层级)
driver.find_element_by_xpath("//form[@id='form']/span[1]/input[2]") # xpath 绝对路径定位
# 从根目录开始,以/开头,比较繁琐,一般不建议使用
driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input")

模糊定位

# xpath 模糊定位
driver.find_element_by_xpath("//input[contains(@text(),'百度一下')]") # xpath 匹配以什么开头
driver.find_element_by_xpath("//input[start-with(@class,'s_i')]") # xpath 匹配以什么结束
driver.find_element_by_xpath("//input[end-with(@class,'ipt')]") # xpath 正则匹配
driver.find_element_by_xpath("//*[match(@id,'kw')]")

Selenium - 元素定位(2) - XPATH进阶的更多相关文章

  1. Selenium元素定位之Xpath

    Xpath非常强大,使用Xpath可以代替前六种基本的定位方式,这种定位方式几乎可以定位到页面上的任何元素. Xpath简介 Xpath就是xml path,是一种在xml中查找信息的语言,因为htm ...

  2. selenium元素定位方式xpath总结

    一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[2]/form/ ...

  3. python+selenium元素定位之XPath学习02

    XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 ...

  4. python+selenium元素定位之XPath学习01

    参考文档1:https://www.w3school.com.cn/xpath/xpath_syntax.asp 参考文档2:https://www.runoob.com/xpath/xpath-tu ...

  5. 自动化测试基础篇--Selenium元素定位

    摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...

  6. Selenium3 + Python3自动化测试系列二——selenium元素定位

    一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...

  7. selenium元素定位之css选择器

    在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...

  8. selenium元素定位陷阱规避

    为什么selenium可以在各个浏览器上运行?因为selenium在与各个浏览器驱动执行前,会先把脚本转化成webdriver, webdriver wire协议(一种json格式的协议),这样就与脚 ...

  9. Selenium2学习-002-Selenium2 Web 元素定位及 XPath 编写演示示例

    此文主要对 Selenium2 的 Web 元素定位及 XPath 编写示例,敬请各位亲们参阅,共同探讨.若有不足之处,敬请各位大神指正,不胜感激! 通过 Firefox(火狐)浏览器的插件 Fire ...

  10. Java + selenium 元素定位(5)之By Xpath

    这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpat ...

随机推荐

  1. jdk8 stream部分排序方法

    List<类> list; 代表某集合   //返回 对象集合以类属性一升序排序   list.stream().sorted(Comparator.comparing(类::属性一)); ...

  2. MATLAB信号处理常用函数(转载)

    https://shimo.im/docs/YyRXY8cQdqY8RJvc/ <MATLAB信号处理工具箱>,可复制链接后用石墨文档 App 或小程序打开 嗯这个肯定是随便看看,有个印象 ...

  3. java注解与反射--3

    java注解与反射--3 类的加载与ClassLoader java内存 堆 存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 栈 存放基本变量类型 引用对象的变量 方法区 可以被所 ...

  4. 在一张 24 GB 的消费级显卡上用 RLHF 微调 20B LLMs

    我们很高兴正式发布 trl 与 peft 的集成,使任何人都可以更轻松地使用强化学习进行大型语言模型 (LLM) 微调!在这篇文章中,我们解释了为什么这是现有微调方法的有竞争力的替代方案. 请注意, ...

  5. 9.SSRF和XML

    SSRF和XML 目录 SSRF和XML SSRF介绍 SSRF漏洞挖掘 SSRF漏洞利用 内网探测: 常见端口探测: 协议探测: file协议敏感文件: XML介绍 DTD定义 DTD作用 XXE介 ...

  6. Conda in Windows under MSYS2 and Zsh 的问题解决

    Conda in Windows under MSYS2 and Zsh 的问题解决 在Window11上使用git bash 安装zsh,并配置p10k主题,主要问题就是prompt中无法显示con ...

  7. vue3 ts 类式写法的mixins

    vue-property-decorator 混入(mixins) // mixins.ts import { Vue } from 'vue-property-decorator' class Mi ...

  8. C++ 测试框架 GoogleTest 初学者入门篇 乙

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/aFeiOGO-N9O7Ab_8KJ2wxw 开发者虽然主要负责工程 ...

  9. 使用kubeadm快速启用一个集群

    使用kubeadm快速启用一个集群 CentOS 配置YUM源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] n ...

  10. [WEB]对于"Refused to execute script from 'http://xx.xx.xx/yy/zz.js' because its MIME type ('') is not executable, and strict MIME type checking is enabled."问题的解决办法

    1 文由 阶段一:对WEB服务器HTTP通信的header设置了安全头(X-Content-Options:nosniff) 两个月前协助交付侧大哥处理.修复一个三级等保项目的第三方安全公司释出的安全 ...