xpath的相对定位和绝对定位

        XPath 是一门在 XML 文档中查找信息的语言。它通过路径表达式导航 XML 文档,广泛应用于各种场景。XPath 的灵活性和强大功能使其成为在 XML 结构中准确定位和提取数据的重要工具。

XPath 使用场景

Web 自动化测试:

  • XPath 在 Web 自动化测试中广泛应用,XPath 提供了一种强大的定位方式。它能够通过元素的层次结构、属性、文本内容等进行更加灵活和精准的定位,适用于各种复杂的 Web 应用页面。

App 自动化测试:

  • 在移动应用的自动化测试中,XPath 可以在原生应用和混合应用(Hybrid App)中定位和操作元素。在 App 的 UI 中,XPath 可以针对不同平台(如iOS和Android)提供一致的选择能力,使测试脚本更具通用性。

XPath 基础语法(包含关系)

表达式结果
/从该节点的子元素选取
//从该节点的子孙元素选取
*通配符
nodename选取此节点的所有子节点
选取当前节点的父节点
@选取属性

XPath的定位

同一个节点有绝对路径和相对路径两种写法
参考文章:xpath路径表达式笔记 - 阮一峰的网络日志 (ruanyifeng.com)

相对定位

相对定位是两个杠表示“//”,相对路径易维护

定位说明
//ul/*ul的所有子元素
//input[2]第2个input元素
//input[last()最后一个input元素
input[position()< 3]前2个input元素
//input[@value]有value属性的input元素
//input[@name=‘password’ and @pwd=‘123456’]属性name的值等于password并且属性pwd的值等于123456的input元素
//ul/*[5]ul的第五个子元素
//*[text()=‘Heading’任意包含Heading文本的元素
//input[@*=‘SYS123456’]任意属性的值为SYS123456

 XPath 相对定位的优点

  • 可维护性更强:XPath 相对定位可以相对于其他元素的方式来定位元素。如果页面结构发生变化,只需要更新相对路径中的某些部分,而不必重新创建整个定位表达式。
  • 语法更加简洁:XPath 相对路径是相对于其他元素的路径,更容易理解和编写。与复杂的绝对路径相比,相对路径语法更加简洁。
  • 相比于 css 可以支持更多的方式:XPath 相对定位可以访问 XML 和 HTML 文档的任何部分,而不仅仅是元素和属性。

绝对路径

绝对定位用一个杠“/”, 绝对路径一个层级变化所有空间都有变化

xpath在爬虫中的简单使用

代码:

import requests  
from lxml import etree  
#定义url
url = "https://www.baidu.com/"  
#获取网页代码
response = requests.get(url) 
#解析成xpath可以分析的编码
html = etree.HTML(response.text)  
#定义爬虫位置为links
links = html.xpath("//div/p/a/text()")
#for循环遍历处所有节点内容
for link in links:  
    print(link)

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HJX—

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值