如何为以下具有相同值的img类获取xpath
?
仅描述的咏叹调是唯一的,我要单击第一张图片
<img aria-label="More Detail" aria-describedby="card-heading_507" aria-expanded="false" role="button" tabindex="0" src="/ui/services_co_myatt_overview/1.0.0/images/cbo_expand_icon.png" alt="More Detail" />
<img aria-label="More Detail" aria-describedby="card-heading_508" aria-expanded="false" role="button" tabindex="0" src="/ui/services_co_myatt_overview/1.0.0/images/cbo_expand_icon.png" alt="More Detail" />
<img aria-label="More Detail" aria-describedby="card-heading_509" aria-expanded="false" role="button" tabindex="0" src="/ui/services_co_myatt_overview/1.0.0/images/cbo_expand_icon.png" alt="More Detail" />
我尝试了以下操作,但不起作用:
//img[@src='/ui/services_co_myatt_overview/1.0.0/images/cbo_expand_icon.png'][1]
答案 0 :(得分:2)
尝试
//img[@aria-describedby="card-heading_507"]
编辑:
为了检查元素是否真正可见,请输入$x('//img[@aria-describedby="card-heading_507"]')
在DevTools中进行控制台,并查看是否可以找到该元素。
答案 1 :(得分:1)
您尝试这样吗?
//img[@aria-label="More Detail"][1]
答案 2 :(得分:1)
如果唯一的唯一属性是aria-describedby
,则应使用它!
imgPath = '//img[@aria-describedby="card-heading_507"]'
如果您不想使用硬编码,而总是抓住第一个img
,则可以使用findElements
并在列表中找到第一个元素...
lstOfImgs = driver.findElement(By.xpath('//img[@aria-label="More Detail"]'));
lstOfImgs[0]
或者您可以在Xpath中引用它,请参见example:
//img[@aria-label="More Detail"][1]