当前位置: 首页 > news >正文

网站的认识知识付费做的最好的平台

网站的认识,知识付费做的最好的平台,个人求职网站源代码,国内优秀的网站设计在进行Web自动化测试时#xff0c;元素定位是一个至关重要的环节。XPath#xff08;XML Path Language#xff09;是一种用于在XML文档中定位节点的语言。在Web自动化中#xff0c;XPath广泛应用于定位HTML元素。本文将详细介绍几种常用的XPath定位方式#xff0c;包括绝对…       在进行Web自动化测试时元素定位是一个至关重要的环节。XPathXML Path Language是一种用于在XML文档中定位节点的语言。在Web自动化中XPath广泛应用于定位HTML元素。本文将详细介绍几种常用的XPath定位方式包括绝对路径、相对路径、轴定位以及如何定位相同元素的最后一个并解释一些常见的语法差异和其他轴定位方式。 1. 绝对路径定位 绝对路径是从文档的根节点开始逐层向下定位目标元素的路径。这种方式需要精确指定每一层的标签名路径结构类似于文件夹的目录结构。 1.1 例子 假设有以下HTML结构 htmlbodydiv idmainh1标题/h1p classdescription描述信息/pulli classitem项1/lili classitem项2/lili classitem项3/li/ul/div/body /html如果你想通过绝对路径定位到p元素描述信息可以使用以下XPath表达式 /html/body/div/p 解释这里的/表示从根节点开始逐层进入。首先进入html然后进入body接着进入div最后定位到p。这种方式的缺点是如果HTML结构有所变化比如增加了新的标签路径就可能失效。 1.2 Python示例代码 from selenium import webdriver# 创建浏览器实例 driver webdriver.Chrome() driver.get(http://example.com)# 通过绝对路径定位到描述信息 description driver.find_element_by_xpath(/html/body/div/p) print(description.text) # 输出描述信息2. 相对路径定位 相对路径是从当前节点开始使用相对路径定位目标元素。这种方式更灵活常用于定位元素而不需要关注其完整路径。 2.1 例子 继续使用上面的HTML结构要定位到描述信息你可以使用以下XPath表达式 //p[classdescription] 解释这里的//表示从文档的任何位置开始查找classdescription用于指定类名。这种方式的好处是即使HTML结构有所变化只要p标签的class属性不变XPath仍然有效。 2.2 Python示例代码 from selenium import webdriver# 创建浏览器实例 driver webdriver.Chrome() driver.get(http://example.com)# 通过相对路径定位到描述信息 description driver.find_element_by_xpath(//p[classdescription]) print(description.text) # 输出描述信息3. XPath语法解析 示例 HTML 结构 htmlheadtitleSample Page/title/headbodydiv idmainh1Main Title/h1div classcontentp classtextThis is a paragraph in the content./pulliList Item 1/liliList Item 2/liliList Item 3/li/ul/divdiv classfooterpFooter Text/p/div/divdiv classsidebarh2Sidebar Title/h2pSidebar content goes here./p/div/body /html3.1 //和/的区别 /表示从根节点开始的绝对路径。例如/html/body意味着你从最上面的html开始查找然后进入body。这个路径是具体且不容许有任何偏差的。 //表示从任意位置开始的相对路径能在文档的任何位置查找。它可以选择当前节点及其所有后代节点中的匹配元素无论它们的层级关系如何。例如//div会查找文档中所有的div元素。它的灵活性使得在复杂的文档结构中仍然能够找到目标元素。 使用 / 获取标题 /html/head/title 这条 XPath 表达式从根节点 /html 开始选择 head 的 title 元素。它只会返回 titleSample Page/title。 获取主内容中的第一个段落 /html/body/div[idmain]/div[classcontent]/p[1] 这个表达式从根节点开始依次选择具有特定 ID 和类名的元素最后选择 content 下的第一个 p 元素返回 This is a paragraph in the content.。 使用 // 1.获取所有段落 //p 这条 XPath 表达式会查找文档中的所有 p 元素包括主内容中的段落和侧边栏中的段落。返回所有匹配的段落元素 返回 【This is a paragraph in the content.】和S【idebar content goes here.】 2.获取所有列表项 //ul/li 这个表达式将查找所有 ul 下的 li 元素不论其层级位置。返回所有列表项。 3.获取具有特定类名的所有元素 //div[classcontent]//p 这个表达式从具有类名 content 的 div 开始查找该div下所有的 p 元素。返回匹配的所有段落。返回 This is a paragraph in the content.。 3.2 /..与parent:: /..表示父节点。例如如果你定位到一个元素使用/..可以直接获取其父节点。它的用法非常直观像是在文件系统中返回上一级目录。 parent::也是用来定位父节点的轴定位方式它在XPath中更具表达性通常用于复杂的XPath表达式。它可以更清晰地表述你是在寻找某个节点的父节点而不仅仅是通过路径返回。 示例代码 # 通过/..获取父节点 parent_div driver.find_element_by_xpath(//p[classdescription]/..)# 通过parent::获取父节点 parent_div_alt driver.find_element_by_xpath(//p[classdescription]/parent::div)4. 轴定位 XPath的轴定位允许我们从当前节点或特定节点向任意方向查找元素。这使得定位更加灵活。 4.1 常用的轴定位示例 ancestor选取当前节点的所有祖先节点类似于向上追溯父母辈。following-sibling选取当前节点后面的所有同级节点比如在兄弟姐妹中找。preceding-sibling选取当前节点前面的所有同级节点仍然是在兄弟姐妹中找但是方向相反。 4.2 其他轴定位方式 child选取当前节点的所有子节点像是寻找儿女。descendant选取当前节点的所有后代节点类似于寻找孙子、孙女。following选取当前节点之后的所有节点像是在时间轴上往后看。preceding选取当前节点之前的所有节点像是在时间轴上往前看。self选取当前节点这对于某些复杂的表达式很有用。 4.3 示例代码 假设我们要选取描述信息的所有子节点可以使用 //div[idmain]/child::* 要获取描述信息的所有后代节点可以使用 //div[idmain]/descendant::* 4.4 Python示例代码 # 获取所有子节点 children driver.find_elements_by_xpath(//div[idmain]/child::*) for child in children:print(child.tag_name) # 输出所有子节点的标签名# 获取所有后代节点 descendants driver.find_elements_by_xpath(//div[idmain]/descendant::*) for descendant in descendants:print(descendant.tag_name) # 输出所有后代节点的标签名 5. 定位相同元素的最后一个 在一些情况下我们需要定位多个相同类型的元素例如列表项并提取最后一个元素。可以使用last()函数。 5.1 示例 要定位最后一个列表项可以使用以下XPath表达式 //li[classitem][last()] 解释last()函数能够帮助你找到同类元素中的最后一个避免了需要计算列表长度的问题。 5.2 Python示例代码 from selenium import webdriver# 创建浏览器实例 driver webdriver.Chrome() driver.get(http://example.com)# 通过XPath定位最后一个具有相同类名的li元素 last_item driver.find_element_by_xpath(//li[classitem][last()]) print(last_item.text) # 输出最后一个项的文本6. 总结 XPath是一种强大的定位工具绝对路径、相对路径、轴定位及定位最后一个元素的方法都是常用的定位方式。通过理解//和/的区别、/..与parent::的用法以及其他轴定位方式可以更有效地进行元素定位。希望本文能帮助你更好地理解和使用XPath进行元素定位提升Web自动化测试的效率。
http://www.w-s-a.com/news/689985/

相关文章:

  • 企业电子商务网站设计的原则深圳的网站建设公司怎么样
  • 个人网站趋向wordpress图片搬家
  • 做空压机网站的公司有哪些wordpress 外部链接
  • 网站建设管理成本估计小红书推广平台
  • 一级a做爰片免费观看网站焦作建设企业网站公司
  • 欧阳网站建设2022华为云营销季
  • 快速学做网站高水平的大连网站建设
  • 专业做房地产网站建设wordpress侧面小工具
  • 旅游网站开发的重要性wordpress添加广告插件
  • 关于网站建设管理工作的报告婚纱网站php
  • 东莞市建设培训中心网站那个网站可以看高速的建设情况
  • 网站开发工具安卓版专业小程序商城开发
  • 网站不备案影响收录吗深圳住房网站app
  • 交网站建设域名计入什么科目开发平台教程
  • 个人网站定制北京快速建站模板
  • 河南海华工程建设监理公司网站高端论坛网站建设
  • 网站建设网络推广方案图片编辑器免费
  • 如何用dw做网站设计设计头条
  • 网站建设基础及流程北京商场购物中心排名
  • 青州市城乡建设局网站自建网站步骤
  • wordpress文章延迟加载优化设计答案四年级上册语文
  • 做网站源码要给客户嘛怎么在运行打开wordpress
  • 北海住房和城乡建设局网站wordpress标题去掉私密
  • 织梦网站安装视频做网站都有那些步骤
  • 网站空间大小选择沈阳微信网站制作
  • 网站分享对联广告网站结构的类型
  • 三维家是在网站上做还是在app上北京网站建设 专业10年
  • 模拟网站建设网站建设认准猪八戒网
  • godaddy网站建设教程微信手机网站搭建
  • 网站建设 商城淄博网站制作哪家好