Java 如何通过另一个表值的文本单击复选框
我有一个带有表的页面,其中包含以下htmlJava 如何通过另一个表值的文本单击复选框,java,html,selenium,xpath,junit,Java,Html,Selenium,Xpath,Junit,我有一个带有表的页面,其中包含以下html <tbody> <tr> <td> <div> <input /> <----what I want to click </div> </td> <td></td> <td></td>
<tbody>
<tr>
<td>
<div>
<input /> <----what I want to click
</div>
</td>
<td></td>
<td></td>
<td>
<div>
<a>
<span>text here</span> <-----how i find correct table row
</a>
</div>
</td>
</tr>
</tbody>
它怎么也找不到元素
任何帮助都将不胜感激。试试这个
*首先找到所需的子节点
*然后找到所需元素类型的第一个祖先(在您的示例“tr”中)
*然后获取此tr下面的第一个输入元素
String xpathExpression = "//tbody//span[contains(., 'text here')]/ancestor::tr[1]//input";
driver.findElement(By.xpath(xpathExpression)).click();
试试这个
*首先找到所需的子节点
*然后找到所需元素类型的第一个祖先(在您的示例“tr”中)
*然后获取此tr下面的第一个输入元素
String xpathExpression = "//tbody//span[contains(., 'text here')]/ancestor::tr[1]//input";
driver.findElement(By.xpath(xpathExpression)).click();
尝试使用以下xpath:-
this.getDriver().findElement(By.xpath("//tbody//td[text()='"+texthere+"']/preceding-sibling::td//input")).click();
在上面的xpath中,我们找到了td标记,其中包含文本,关于这个标记,我们找到了它前面的同级td,这样它就包含了输入标记请尝试下面的xpath:-
this.getDriver().findElement(By.xpath("//tbody//td[text()='"+texthere+"']/preceding-sibling::td//input")).click();
在上面的xpath中,我们找到了td标记,其中包含文本,关于这个标记,我们找到了它前面的同级td,这样它就包含了输入标记