如何为具有相同值的以下img类获取xpath?

时间:2019-01-25 14:29:52

标签: selenium xpath automation

如何为以下具有相同值的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]

3 个答案:

答案 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]