使用selenium webdriver java点击图片?

时间:2013-04-26 09:08:22

标签: selenium webdriver selenium-webdriver

我正在尝试点击表格单元格中的图像,图像没有id,classname等。 img html是:

img src="/Framework/images/moredetails.gif"

我正在使用以下CSS路径:

html body div#minwidth div#outer_wrapper div#wrapper div#container div#content div#main div.maincontentarea div#top_contentbox div#top_tablewrapperdivtab form div#AddEdit response div.contentbox1 div.contentbox div#Accepted.tablewrapperdivtab div.scrolldiv div#AcceptedDetails table.tablelist tbody#detailBody tr td img

我试过xpath:

//*[@id='detailBody']/tr[1]/td[16]/img

我不想使用上面的xpath,因为将来如果单元格没有。更改后,xpath需要更改。他们是处理上述问题的最好办法吗?

1 个答案:

答案 0 :(得分:1)

尝试下面的xpath:

"//img[contains(@src,'/TCSFramework/images/moredetails.gif')]"

对于所有img代码,您将获取其src值中包含“/TCSFramework/images/moredetails.gif”的代码。


许多图像与src相同?没问题。

您可以使用以下所有img构建一个列表:

List<WebElement> listImg = driver.findElements(By.xpath("//img[contains(@src,'/TCSFramework/images/moredetails.gif')]"));
获取所有img后,如果你知道他的位置顺序(在html中),那么

<img> position 0 </img>
<img> position 1 </img> <----- you want that img
<img> position 2 </img>

你会写一些类似的东西(你在第1位获得img并点击它)

listImg.get(1).click();

但是,如果您不知道他的位置顺序(在html中),您需要在xpath中添加条件,就好像名称包含特定值或类是特定于img

你可以发布你的img html行吗? (如果问题没有解决)


我有一个cssSelector给你,尝试并告诉我它是什么:

css:"#detailBody tr:first-child td:nth-child(16) img"