Selenium找到并单击带有div内部文本的img

时间:2018-03-20 12:34:08

标签: java selenium xpath selenium-webdriver

我是selenium中xpaths的新手,并尝试点击Next>下面代码中的图像/按钮。我试过跟随两个xpath但它没有工作并且没有给出找不到元素的错误。

By.xpath("//div[@class='pzbtn-mid']/img[contains(text(), \"Next >\")]"))
By.xpath("//div[@class='pzbtn-mid']/img[contains(text(), 'Next >')]"))

我在这里做错了什么?

<div class="pzbtn-mid" data-bindprops="innerHTML" data-click="...."> ==$0
<img src="webwb/zblankimage.gif" alt="" class="pzbtn-i">
"Next >"
<img alt="" src="webwb/zblankimage.gif" class="pzbtn-i">

2 个答案:

答案 0 :(得分:0)

根据您在下一页&gt; 图片/按钮上与click()分享的 HTML ,您可以使用以下xpath

By.xpath("//div[@class='pzbtn-mid']/img[@class='pzbtn-i' and @src='webwb/zblankimage.gif']"))

注意:文本下一步&gt; 不在<img>标记内,而是在<div>标记内。因此,要点击图像/按钮,您必须到达<img>标记。

答案 1 :(得分:0)

您也可以使用下面的xpath,

By.xpath("//div[contains(@class,'pzbtn-mid') and contains(.,'Next >')]//img")

如果img属于next,则单击第一个图像。其他你应该点击下面的第二个img;

driver.findElementsBy((By.xpath("above xpath")).get(1));