Selenium Python如何定位并获取动态变化的链接文本
动态链接元素定位方案
定位代码示例
CSS选择器
依托元素自带的业务属性做层级匹配,稳定性更高:
/* 匹配所有符合结构的目标a标签 */ card[type="CCCC"] .ppp-description a[ng-click="cardVM.onDetails()"] /* 匹配第N个符合结构的目标a标签,n替换为对应序号即可 */ card[type="CCCC"]:nth-child(n) .ppp-description a[ng-click="cardVM.onDetails()"]
XPath表达式
适合需要多条件组合匹配的场景:
<!-- 基础匹配 --> //card[@type="CCCC"]//div[contains(@class,"ppp-description")]/a[@ng-click="cardVM.onDetails()"] <!-- 可增加文本非空判断,避免拿到未渲染完成的空元素 --> //card[@type="CCCC"]//div[contains(@class,"ppp-description")]/a[@ng-click="cardVM.onDetails()" and normalize-space(text())!=""]
额外说明
- 该页面为AngularJS渲染的动态页面,不要使用绝对路径做定位,优先用
type、ng-click、自定义class这类和业务逻辑绑定的属性做匹配,不会因为页面结构小调整就失效 - 如果你使用的是Selenium类的自动化工具,获取文本前可以显性等待对应元素的文本属性不为空,进一步提升成功率
内容的提问来源于stack exchange,提问作者barbiejet
相关产品推荐
相关产品推荐

