gpt4 book ai didi

java - WebElement.findElement 方法在 WebDriver 范围内查找元素

转载 作者:行者123 更新时间:2023-12-05 08:17:21 28 4
gpt4 key购买 nike

我有以下 HTML 代码,我正在尝试运行我的 selenium 测试

<html>

<head></head>

<body>
<table id="Original">
<tr>
<td>Original-11</td>
<td>Original-12</td>
<td>Original-13</td>
</tr>
<tr>
<td>Original-21</td>
<td>Original-22</td>
<td>Original-23</td>
</tr>
<tr>
<td>Original-31</td>
<td>Original-32</td>
<td>Original-33</td>
</tr>
</table>

<br/><br/>

<table id="Duplicate">
<tr>
<td>Duplicate-11</td>
<td>Duplicate-12</td>
<td>Duplicate-13</td>
</tr>
<tr>
<td>Duplicate-21</td>
<td>Duplicate-22</td>
<td>Duplicate-23</td>
</tr>
<tr>
<td>Duplicate-31</td>
<td>Duplicate-32</td>
<td>Duplicate-33</td>
</tr>
</table>
</body>

</html>

selenium java 代码如下所示:

public static void main(String[] args) throws Exception
{
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/src/test/drivers/chromedriver.exe");

WebDriver drv = new ChromeDriver();
drv.get("C:/Users/MYUserName/git/er_test/SeleniumTestHtml.html");

WebElement tableElement = drv.findElement(By.id("Duplicate"));
WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]"));
WebElement cellElement = rowElement.findElement(By.xpath("//td[2]"));
System.out.println(rowElement.getText());
System.out.println(cellElement.getText());

drv.close();
drv.quit();

}

我期待如下结果:
Duplicate-21 Duplicate-22 Duplicate-23
重复 22

但我得到了这个结果:
原创-21 原创-22 原创-23
原创-12

我是不是做错了什么?

最佳答案

您的问题是 // 让您返回到从顶部根元素开始搜索。

这意味着

WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]"));

一样好
WebElement rowElement = driver.findElement(By.xpath("//tr[2]"));

如果您只需要在当前元素内搜索,那么您应该使用

WebElement rowElement = tableElement.findElement(By.xpath(".//tr[2]"));

关于java - WebElement.findElement 方法在 WebDriver 范围内查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46718613/

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