gpt4 book ai didi

webdriver - Java RemoteWebDriver - WebElement.findElements(...) 不能正常工作?

转载 作者:行者123 更新时间:2023-12-02 02:22:55 24 4
gpt4 key购买 nike

我有一个网站要测试,里面有这段html代码:

<table id="tableid">
<tbody>
<tr class="first">
<td>Hello World</td>
</tr>
<tr class="second">
<td>Bye World</td>
</tr>
</tbody>
</table>

所以我想创建一个 tr 标签列表并使用以下代码迭代它们:

List<WebElement> list = driver.findElements(By.xpath("//table[@id='tableid']/tbody/tr"));
for(WebElement l : list){
System.out.println(l.getAttribute("class"));
System.out.println(l.getLocation());
System.out.println(l.hashCode());
System.out.println(l.findElement(By.xpath("//td")).getText());
}

这四个System.out.println的分别是:
第一
(32, 300)
1573
Hello World
第二个
(64, 600)
1574
Hello World

所以定位不一样,连类属性都不一样。但是 getText 方法只返回第一个元素的文本。为什么?我错过了什么吗?做错了什么?我想不通。

编辑/更新:这似乎有点奇怪。上面的代码不起作用。如果我执行以下代码,它工作正常。有什么解释吗?

List<WebElement> list = driver.findElements(By.xpath("//table[@id='tableid']/tbody/tr/td"));
System.out.println(list.get(0).getText());
System.out.println(list.get(1).getText());

输出:
Hello World
再见世界

最佳答案

您的 XPath 错误。 //td 表示“文档中任意位置的任何元素”。试试 l.findElement(By.xpath("td")).getText() - 我想你会得到你想要的结果。

关于webdriver - Java RemoteWebDriver - WebElement.findElements(...) 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com