如何使用只有 SRC 的 Selenium 单击图像

Posted

技术标签:

【中文标题】如何使用只有 SRC 的 Selenium 单击图像【英文标题】:How to click an image with Selenium with only an SRC 【发布时间】:2013-08-26 18:23:23 【问题描述】:
<td colspan="2" align="center">
        <img src="web/L001/images/IMAGENAME.jpg"   border="0" onclick="javascript: MessageDisplay()" ></td>

这是我要点击的元素。 我尝试的代码:

WebElement temp = driver.findElement(By.xpath("web/L001/images/Phishing_12.jpg"));
temp.click();

我什至尝试了完整的地址,但任何想法都将不胜感激。

我使用它来登录各种网站,但这个特定的网站会弹出一个网页,然后我必须单击该元素才能继续。 -谢谢

【问题讨论】:

您没有使用正确的图像 xpath。这就是为什么你会遇到错误消息 【参考方案1】:

这个 xpath 应该可以找到它

WebElement temp = driver.findElement(By.xpath("//img[@src='web/L001/images/IMAGENAME.jpg']"));

或者像这样使用包含

WebElement temp = driver.findElement(By.xpath("//img[contains(@src,'web/L001/images/IMAGENAME.jpg')]"));

但我认为问题在于您不是 waiting 的元素。

【讨论】:

【参考方案2】:

通常 CSS 选择器优于 xpath。这就是我推荐的原因:

WebElement temp = driver.findElement(By.cssSelector("img[src='web/L001/images/IMAGENAME.jpg']"));

【讨论】:

您也可以使用通配符,以便By.cssSelector("a[src='web/L001/images/IMAGENAME.jpg']") 可以表示为By.cssSelector("a[src*='MAGENAME.jpg']") 很确定这应该是By.css("img[src='web/L001/images/IMAGENAME.jpg']")

以上是关于如何使用只有 SRC 的 Selenium 单击图像的主要内容,如果未能解决你的问题,请参考以下文章

如何单击其href在Selenium中具有某个子字符串的链接?

Selenium 在使用 Python 时无法单击“获取数据”按钮

如何使用 Selenium 和 Java 单击具有 SVG 子项的链接?

使用 Selenium,如何根据关联标签单击单选按钮

如何使用Java中的selenium从页数逐个单击“下一步”按钮

如何使用 Selenium 在网页上单击打印按钮