web自动化:元素定位(二)
1|0一. 实例
如何定位到下图第二个"抢投标",有一种方法是利用xpath定位 //a[@href="/loan/loan_detail/Id/7190.html" and text()="抢投标"],但是我们注意到,这个链接中的7190是id值,而页面中的id值是可以变化的,因此当标变化时,我们又得重新写xpath定位表示式了,那么,有没有一种更好的方式来解决这个问题,这就需要用到xpath的轴定位
2|0二. xpath的轴定位
2|11. 轴运算
轴名称 | 描述 |
ancestor | 选取祖先节点(包括父节点) |
parent | 选取父节点 |
preceding | 选取当前节点标签之前的所有节点(按html页面先后顺序) |
preceding-sibling | 选取当前节点标签之前的所有兄弟节点 |
following | 选取当前节点标签之后的所有节点(按html页面先后顺序) |
following-sibling | 选取当前节点标签之后的所有兄弟节点 |
2|22. 使用语法:轴名称::节点名称
2|33. 应用场景:页面显示为一个表格样式的数据列,需要通过组合来定位元素
2|44. 实例1:利用xpath轴定位,定位到下图第二个"抢投标"
2|5实例2:定位到下图"企业3"中的"375万"
注意:我们不能通过//div[text()="企业3"]/following-sibling::div//span[text()="375万"]来定位,因为金额是可变的,如果这个标金额变化了,这个表达式就匹配不到了。所以定位时,一定要考虑到哪些是变化的,比如文本内容,元素下标(同一个span[n]),变化的一定不能作为定位表达式中的一部分,一般利用元素的固定的属性值来定位
3|0三. 滚动条之后的元素定位
3|1方法一:
使用js脚本拖动到指定的地方
第一步:找到这个元素
第二步:利用js
3|2实例:比如现在想定位下图中的id="local_current"所在的元素,但是这个元素所代表的区域不是页面的可见区域,我们需要执行js来拖动滚动条
3|3方法二:根据页面显示进行变通,发送tab键
例如:百度搜索结果—定位到滚动条滚动之后的某个链接。
发送tab键切换到密码框
3|4拓展:
滚动到顶部:
或者
滚动到底部:
或者
3|5实例:拖动百度新闻页面的滚动条到底部和顶部
__EOF__

本文作者:cnhkzyy
本文链接:https://www.cnblogs.com/my_captain/p/9163554.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/my_captain/p/9163554.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
web自动化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?