参考资料:
【web自动化测试】xpath元素定位


核心用法

接下来是使用 xpath 必须掌握的核心知识点,只要掌握好这些知识点,基本上能定义到想要的元素。

//input[@name='accout']
  • // 开头表示相对路径, 也可以用 / 开头表示绝对路径,一般用相对路径。
  • [] 内表示属性条件
  • [@name=‘accout’] 表示获取name属性等于accout 的元素

属性选择器

网页元素的任何属性都可以用来定位元素,常见的 name 属性、id 属性、type 属性、class 属性等等。

//input[@type="submit"]

需要注意的是,如果需要用 text 文本定位,则使用 text() 表示。

//a[text()="Sign In"]

如果需要根据模糊文本内容定位。

//a[contains(text(),'新建')]

组合多个属性

多个属性之间可以相互组合,从而更精准的定位到想要的元素。组合可以使用 and 连接,也可以直接在第一个 [] 后继续加第二个 []

//a[1 and contains(@href, "FISH")]
//a[1][contains(@href, "FISH")]
//input[@placeholder='请输入账号' and @name="username"]
//input[@placeholder='请输入账号'][@name="username"]

索引

当通过表达式取出来多个元素时,可以通过索引指定获取第几个。

//div[@id="QuickLinks"]/a[position()=1]
//div[@id="QuickLinks"]/a[position()>3]
//div[@id="QuickLinks"]/a[1]
//div[@id="QuickLinks"]/a[last()]

函数

某些属性的值很长,用等于符号会让表达式看起来很长,因此有时候我们可以使用 contains, starts-with 等函数来精简。

//a[contains(@href, 'FISH')]

通过祖先找后代

//div//input
//div/input
//div/*

通过后代找祖先

//a[.//img[@src="../images/sm_fish.gif"]]
//a[img[@src="../images/sm_fish.gif"]]
//img[@src="../images/sm_fish.gif"]/../..

基本上以上的操作就可以满足95%的使用场景了,还有就是同级元素的查找,尤其是像表格、菜单选项这样的元素经常会用到同级元素。 此时可以使用轴,会更加方便一些。 经常用到的轴有 follow-sibling 和 preceding-sibing。

ancestor:祖先节点 包括父 parent:父节点 preceding-sibling:当前元素节点标签之前的所有兄弟节点
prceding:当前元素节点标签之前的所有节点 following-sibling:当前元素节点标签之后的所有兄弟节点
following:当前元素节点标签之后的所有节点

  • 使用语法: 轴名称 :: 节点名称
//div[@id="QuickLinks"]/a[1]/following-sibling::a[1]

直接获取文本

xpath 也支持直接在表达式内获取 text 文本。

//div[@id="MenuContent"]/a[2]/text()'

获取元素的属性

xpath 也支持直接在表达式内获取属性。

$x('//a[text()="Sign In"]/@href')

Selenium使用xpath定位元素相关推荐

  1. 用XPath精确定位节点元素selenium使用Xpath定位之完整篇

    用XPath精确定位节点元素&selenium使用Xpath定位之完整篇 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇 在利用XSL进行转换的过程中,匹配的 ...

  2. python selenium定位元素方法,python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...

  3. python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...

  4. selenium之find_element_by_xpath定位元素

    selenium之find_element_by_xpath定位元素 一 方法 selenium为定位元素提供了较多方法,大致分为单元素定位和多元素定位. # 查找单个元素:find_element_ ...

  5. web自动化测试之Selenium基础 — XPath定位大全

    1.什么是 XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标 ...

  6. Selenium Tips - CSS定位元素

    Selenium Tips - CSS定位元素 原文: http://sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-sele ...

  7. XPath入门 Selenium使用Xpath定位

    XPath入门 Selenium使用Xpath定位 什么是Xpath 什么是XML XML 与 HTML 的主要差异 如何来获取想要的Xpath路径 谷歌浏览器为例 掌握基本语法,以下列的HTML为例 ...

  8. 使用xpath定位元素

    一.xpath的基本语法 xpath(query) :返回query表达式对应的所有节点的selector list. >>> response.xpath('//div[@clas ...

  9. selenium自学笔记---ecshop购买脚本 xpath定位元素(下拉框,单选框)

    本机环境:xamppv3.2.1+ecshop3.0 1.元素定位写对,却一直报错,发现是页面元素加载的太慢,所以加上延时 from selenium import webdriverimport t ...

最新文章

  1. Windows/Linux上使用fopen相关函数读取大文件
  2. roadflow2.1版oracle,RoadFlowVue3.0.2更新日志
  3. pytorch实现attention_Longformer: 局部Attention和全局attention的混搭
  4. case when判断大于某值_Python 代码判断逻辑太复杂?这里有几条最佳实践和技巧...
  5. java基础面试题:java中实现多态的机制是什么?
  6. Linux下区分物理CPU、逻辑CPU和CPU核数
  7. C++ 定时器的用法:SetTimer和Ontimer
  8. 739. 每日温度 golang
  9. windows x64 软件约定
  10. Python入门学习笔记(6)
  11. 冈萨雷斯--数字图像处理(MATLAB版)----书籍相关网站
  12. python-45-ajax数据序列化
  13. 并查集基础 模板题 hdu1232 畅通工程
  14. 编译OpenJDK8:configure: could not find or use freetype at location
  15. HFSS仿真结果输出
  16. 操作系统软件测试,什么是操作系统_app软件测试全栈系列精品课程_功能测试视频-51CTO学堂...
  17. 智能指针的标准之争:Boost vs. Loki [转]
  18. java 根据list中 | 中、英文名称进行排序
  19. 计算机存储一个字节数是,在计算机中,如果一个存储单元能存放一个字节,则容量为64KB的存储器中的存储单元个数 。...
  20. 使用AWS Comprehend进行情感分析

热门文章

  1. 论测试用例的有效更新及杀虫剂悖论
  2. Delphi 操作Windows系统睡眠-防止系统/电脑 进入睡眠或关闭显示器
  3. 仓位可参考的定投因子汇总
  4. python,基于http协议,最常用的是GET和POST两种方法
  5. 多变量高斯分布的KL散度
  6. 利用dac0832芯片,采用双缓冲方式,产生梯形波形,用c语言编程,单片机原理及应用习题答案...
  7. 数据库、MongoDB/Mongoose、cookie与session、密码加密、图片处理、web Socket和Socket.IO框架
  8. python知识图谱问答系统代码_如何搭建一个基于知识图谱的问答系统(以医疗行业为例)...
  9. springboot 整合 oshi-core 监控 JVM及操作系统
  10. scratch(图形化编程工具)做一个塔防游戏!军事迷可以来体验一下哦!