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日
    浏览(61)
  • selenium【元素定位与操作】

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

    2024年04月18日
    浏览(58)
  • selenium元素定位与操作

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

    2024年02月15日
    浏览(47)
  • Selenium元素定位方法大全

    作为当下最流行的web UI自动化测试工具,selenium是很多测试同学入门接触自动化测试时学习的第一个工具。想要自动化操作页面上的内容,元素定位是首先必须要学习的核心知识。 因此本文主要介绍selenium的几种最常用的元素定位方法,掌握了这些方法,希望能帮助大家快速

    2024年02月02日
    浏览(66)
  • 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日
    浏览(50)
  • 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日
    浏览(73)
  • 学会Selenium元素定位

    UI自动化测试的本质就是将手工测试的一系列动作转化成机器自动执行,可以简单概括为五大步骤:定位元素 - 操作元素 - 模拟页面动作 - 断言结果 - 生成报告。 所以很多同学在学习时,都是以元素定位作为入门导向,好的开始就是成功的一半。 因此,本篇将详细介绍Selen

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

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

    2024年02月10日
    浏览(47)
  • Selenium环境+元素定位大法

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

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

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

    2024年02月02日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包