Selenium元素定位之xpath

这篇具有很好参考价值的文章主要介绍了Selenium元素定位之xpath。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

XPATH 元素定位

xpath通过绝对路径定位元素

xpath通过相对路径定位元素

xpath通过元素属性定位元素

xpath通过属性值模糊匹配定位元素

xpath通过文本定位元素

xpath常见语法一览表


XPATH 元素定位

XPath 是用于在 XML 文档中定位节点的语言。由于 HTML 可以是 XML (XHTML) 的实现,Selenium 用户可以利用这种强大的语言来定位其 Web 应用程序中的元素。XPath 扩展(并支持)通过 id 或 name 属性定位的简单方法,并开辟了各种新的可能性,例如定位页面上的第三个复选框。 

使用 XPath 的主要原因之一是当您没有合适的 id 或 name 属性用于您希望定位的元素时。您可以使用 XPath 以绝对术语(不建议)或相对于具有 id 或 name 属性的元素来定位元素。XPath 定位器还可用于通过 id 和 name 以外的属性指定元素。

绝对 XPath 包含来自根 (html) 的所有元素的位置,因此可能会失败,只需对应用程序进行最轻微的调整。通过查找具有 id 或 name 属性的附近元素(理想情况下是父元素),您可以根据关系定位目标元素。这不太可能改变,并且可以使您的测试更加健壮。

由于只有定位器以“//”开头,因此在指定 XPath 定位器时xpath不需要包含标签。

xpath通过绝对路径定位元素

将xpath表达式从html的最外从节点,逐层填写,最后定位到操作元素。

注意:如果 HTML 稍微改变就会中断,不建议使用

1 driver.find_element_by_xpath('/html/body/div[2]/div[1]/a') 

2 driver.find_element(By.XPATH, '/html/body/div[2]/div[1]/a')

xpath通过相对路径定位元素

绝对路径与相对路径的差别与文件系统中的绝对和相对路径类似,相对路径是只给出元素路径的部分信息,在html的任意层次中寻找符合条件 的元素,语句以//开始

1 driver.find_element_by_xpath('//form/span') 

2 driver.find_element(By.XPATH, '//form/span')

xpath通过元素属性定位元素

单属性定位://input[@name='pwd']

1 driver.find_element_by_xpath("//input[@name='pwd']") 

2 driver.find_element(By.XPATH, "//input[@name='pwd']")

多属性定位: //a[@title="tutorial" and @rel="follow"]

1 driver.find_element_by_xpath('//a[@title="tutorial" and @rel="follow"]')

2 driver.find_element(By.XPATH, '//a[@title="tutorial" and @rel="follow"]')

xpath通过属性值模糊匹配定位元素

xpath模糊匹配的函数有两种: starts-with和contains

starts-with://label[starts‐with(@class,'btn')]

1 driver.find_element_by_xpath("//label[starts‐with(@class,'btn')]") 

2 driver.find_element(By.XPATH, "//label[starts‐with(@class,'btn')]")

 contains://label[contains(@class,'btn')]

1 driver.find_element_by_xpath("//label[contains(@class,'btn')]") 

2 driver.find_element(By.XPATH, "//label[contains(@class,'btn')]")

xpath通过文本定位元素

文本内容的定位是利用html的text字段进行定位的方法,//span[text()='下一步'],由于“下一步”这几个字是浏览器界面就可以看到的,“所见即所得”,这种特征的可能性非常小,优先推荐使用,与属性值类似,文本内容也支持starts-with和contains模糊匹配。

1 driver.find_element_by_xpath("//span[text()='下一步']") 

2 driver.find_element(By.XPATH, "//span[text()='下一步']") 

3 driver.find_element(By.XPATH, "//span[starts‐with(text(),'下一步')]") 

4 driver.find_element(By.XPATH, "//span[contains(text(),'下一步')]")

xpath常见语法一览表

表达式 说明 举例
/ 从根节点开始选取 /html/div/span
// 从任意节点开始选取 //input
. 选取当前节点
.. 选取当前节点的父节点 //input/.. 会选取input的父节点
@ 选取属性,或者根据属性选取

//input[@data] 选取具备 data属性的input元素

//@data 选取所有 data属性文章来源地址https://www.toymoban.com/news/detail-771165.html

* 通配符,表示任意节点或任意属性

到了这里,关于Selenium元素定位之xpath的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自学Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和优缺点

    文章目录 Python Selenium八大元素定位方法(新版BY方法) 前言 一、常用的八种定位方法(新旧对比) 二、查看网页元素 三、八大元素定位示例 1、id定位 2、name定位 3、class定位 4、tag定位 5、link定位 6、partial_link定位 7、xpath定位 8、CSS定位 在学习使用Selenium对网页元素进行定位时

    2024年04月22日
    浏览(35)
  • selenium基础定位元素入门

    参考文章链接 4、安装浏览器驱动 谷歌(国内镜像地址) 其他浏览器的话需要自行下载查看,对应自身浏览器的版本进行选择即可 若没发现对应的64位的驱动,用32位的也可以,不影响使用。 5、浏览器驱动安装 下载好驱动压缩包过后,解压得到 chromedriver.exe 驱动程序把他放

    2024年02月11日
    浏览(26)
  • selenium定位rect元素

    rect元素的属性如下: x:此属性确定矩形的x坐标。 值类型:| ; 默认值:0 动画:是 y:此属性确定矩形的y坐标。 值类型:| ; 默认值:0 动画:是 width:此属性确定矩形的宽度。 值类型:自动|| ; 默认值:自动;动画:是 height:此属性确定矩形的高度。 值类型:自动|| ; 默认

    2024年02月15日
    浏览(41)
  • selenium【元素定位与操作】

    定位元素 [@属性=‘属性值’] [@属性] [tag] [text()=‘文本’] 返回的是元素两个间的文本 [contains(text(),“元素两个间的部分文本”)] [contains(@属性名,“部分属性值”)] 定位下拉列表的某个选项:driver.find_element(By.XPATH,‘//option[text()=“联想”]’) driver.find_element(By.XPATH,‘//o

    2024年04月18日
    浏览(45)
  • selenium元素定位

    元素定位: 一、单元素定位           1、id定位:使用元素的id属性定位     2、name定位:使用元素的name属性定位     3、class定位:使用元素的class属性定位           当class属性值有空格时,空格要用点代替           class属性值有空格时,说明元素属于由空格分隔的

    2024年02月02日
    浏览(28)
  • selenium定位元素方法

    1、通过id定位元素 写法1: element = driver.find_element_by_id(\\\"kw\\\") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value=\\\"kw\\\") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推 2、通过class定位元素 写法1: cheeses = driver.find_elements_by_clas

    2023年04月25日
    浏览(41)
  • Selenium环境+元素定位大法

    selenium 与 webdriver Selenium 是一个用于 Web 测试的工具,测试运行在浏览器中,就像真正的用户在手工操作一样。支持所有主流浏览器 WebDriver 就是对浏览器提供的原生API进行封装,使其成为一套更加面向对象的Selenium WebDriver API。 使用这套API可以操控浏览器的开启、关闭,打开

    2024年02月12日
    浏览(29)
  • selenium之元素定位

    1:下载最新的浏览器驱动 chrome浏览器驱动下载地址: https://registry.npmmirror.com/binary.html?path=chromedriver/ 查看自己电脑上安装的chrome浏览器版本号,驱动和浏览器版本号需对应。 查看自己电脑浏览器的版本号: ​ 进入驱动下载地址,下载驱动; 比如我的谷歌版本是113.0.5672.1

    2024年02月10日
    浏览(38)
  • Python - selenium-元素定位

    目录 一.前序工作 二.webdriver测试 三.元素定位方式    根据ID定位                a = wd.find_element(By.ID, \\\'值\\\') 根据NAME定位                 a = wd.find_element(By.NAME, \\\'值\\\') 根据CLASS_NAME定位            a = wd.find_element(By.CLASS_NAME, \\\'值\\\')   根据TAG_NAME定位      

    2024年02月01日
    浏览(30)
  • selenium元素定位与操作

    说明:本篇博客基于selenium 4.1.0 在selenium中,想要对元素进行操作,一般需要如下步骤: 在浏览器中查看元素属性,便于selenium在页面中找到该元素 在代码中创建元素对象 元素操作、获取元素信息 方法1:右键-检查 方法2:设置-更多工具-开发者模式 方法3:默认快捷键F12 出

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包