Selenium如何定位id为jsGrid_vgAllCases下带aria-label属性的a标签
问题原因说明
你之前的写法出现全局匹配的核心原因是XPath语法规则:
以//开头的XPath表达式为全局绝对路径,无论你在哪个父元素下调用查找方法,都会从整个文档的根节点开始检索,所以会命中父元素外的目标节点。
正确写法
写法1:基于已获取的父元素做相对查找
在XPath开头加.代表当前选中的父元素,仅匹配该父元素下的所有后代节点:
for link in driver.find_element_by_id('jsGrid_vgAllCases').find_elements_by_xpath('.//a[@aria-label]'): print(link.text)
写法2:直接写完整XPath一次性查找
也可以直接拼接完整的定位路径,无需先单独获取父元素:
for link in driver.find_elements_by_xpath('//*[@id="jsGrid_vgAllCases"]//a[@aria-label]'): print(link.text)
内容的提问来源于stack exchange,提问作者Yang L
相关产品推荐
相关产品推荐

