4

我的网页上有两个列表,它们都有按钮(图像)来从列表中选择所有项目。两个图像具有相同的 id,并且没有任何其他信息,例如类名、CSS、XPath。我想单击第二个图像以从第二个列表中选择所有项目。但是当 Web 驱动程序执行以下行时:

driver.findElement(By.id("MoveAllRight")).click();

它总是点击第一张图片,但我希望它点击第二张。

有人可以帮我吗?

4

5 回答 5

15

不。相反,提出一个错误。这是无效的 HTML。

如果您真的想继续测试无效的东西,并且还想破坏您的自动化测试(您真的不想这样做),您可以执行以下操作:

driver.findElement(By.xpath("(//img[@id='MoveAllRight'])[2]")).click();

它会起作用,但这是错误的做法。

于 2013-02-25T12:35:54.133 回答
3

它总是单击第一个,因为 findElement 将返回找到的第一个与您的条件匹配的。您可以使用 findElements 返回所有匹配元素的列表,然后访问找到的第二个元素。您还可以使用 xpath,例如 //img[@id='MoveAllRight'][2]。

您可能想要做的一件事是调查您是否可以创建一个 xpath 来考虑它应该与之关联的下拉列表,这样您可以确保您单击的图像始终是该特定下拉列表的图像。难度取决于您的应用程序。

于 2013-02-12T20:14:41.120 回答
2
list<webelement>  listele = driver.findelements(by.tageName("Img");
syso(listele.size)

listele.get(0).click;
listele.get(1).click;
于 2016-06-06T07:03:56.957 回答
2

我从过去 3 天开始尝试各种选项,最后用这段代码解决了:

list<webelement>  listele = driver.findelements(by.tageName("Img");
syso(listele.size)

listele.get(0).click;
listele.get(1).click;
于 2017-09-14T04:19:51.090 回答
-1

当我初始化代码时,大小无法解析或不是字段错误消息显示。

于 2018-11-15T04:12:50.040 回答