如何基于其他节点条件选取指定元素?求对应XPath表达式
问题解答
完全可行,针对你的需求,这里给你几个实用的XPath表达式,附带新手易懂的解释:
表达式1:通用关联定位(适配结构变化)
//card[.//span[text()='Product BBB']]//button//span[text()='Create']
- 先通过
//card[.//span[text()='Product BBB']]锁定包含文本为「Product BBB」的span的card节点 - 再在这个card节点下,找到所有文本为「Create」的span元素,不管中间嵌套多少层,都能定位到
表达式2:精准层级定位(结构固定时更高效)
//card[row-layout/div/div/span='Product BBB']/row-layout[2]/button/span/span[text()='Create']
- 利用固定的DOM层级,通过
//card[row-layout/div/div/span='Product BBB']精准找到目标card - 再直接定位到该card下第2个row-layout里的「Create」span,结构不变时速度更快
表达式3:简化文本匹配(无需精准指定嵌套节点)
//card[contains(., 'Product BBB')]//span[text()='Create']
- 用
contains(., 'Product BBB')直接匹配所有包含「Product BBB」文本的card节点,不用管文本在哪个子节点里 - 再在这些card下找到「Create」span,适合快速定位的场景
内容的提问来源于stack exchange,提问作者AT Ng
相关产品推荐
相关产品推荐

