我正在尝试点击表格单元格中的图像,图像没有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需要更改。他们是处理上述问题的最好办法吗?
答案 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"