Java 如何通过标签获取WebElement按钮

Java 如何通过标签获取WebElement按钮,java,selenium,button,label,Java,Selenium,Button,Label,我在一个Java项目中工作,我必须用Selenium做一些UAT。 我对网络开发一无所知,所以我不确定我的问题是否能得到解决。 问题是: 有一个网页,您可以在其中勾选一些单选按钮或复选框。它们的旁边都有一个带文本的字段。所以我想找到那些带有Java和Selenium的按钮和复选框来勾选它们。使用Firefox,我打开控制台以获取一些按钮的代码: <tr> <td class="af_tableSelectMany_cell-icon-format OraTableBorder1

我在一个Java项目中工作,我必须用Selenium做一些UAT。 我对网络开发一无所知,所以我不确定我的问题是否能得到解决。 问题是: 有一个网页,您可以在其中勾选一些单选按钮或复选框。它们的旁边都有一个带文本的字段。所以我想找到那些带有Java和Selenium的按钮和复选框来勾选它们。使用Firefox,我打开控制台以获取一些按钮的代码:

<tr>
<td class="af_tableSelectMany_cell-icon-format OraTableBorder1111" style="">
<input id="equipmentChecker6" type="checkbox" onchange="setDirty();deselectOptions('6');selectOption('6');" value="true" name="equipmentChecker6">
</td>
<td class="af_column_cell-text OraTableBorder1111" style="text-align: left; ">Some Text1</td>
</tr>


<tr>
<td class="af_column_cell-text OraTableBorder1111"> </td>
<td class="af_column_cell-text OraTableBorder1111" style="text-align: left;">
<span class="af_selectOneRadio">
<span id="optionRadio5" class="af_selectOneRadio_content">
<input id="optionRadio5:_0" type="radio" onchange="setDirty();selectEquipment('5');" value="0" name="optionRadio5">
<label for="optionRadio5:_0">Some Text2</label>
</span>
</span>
</td>
</tr>

一些文本1
一些文本2
这是页面中的一些代码。现在我想获取id=equipmentChecker6的Webelement,但我只有文本“Some Text1”

在第二个示例中,我希望通过只使用label对象的文本“Some Text2”来获得id=optionRadio5:0。 有没有一种方法可以通过Selenium在Java中将按钮元素作为Webelements获取

thx请求帮助

driver.findElement(By.id(“元素id”))

因此,在这种情况下:


driver.findElement(By.id(“equipmentChecker6”)

您可以使用

// For the first case
driver.findElement(By.xpath("//td[text()='Some Text1']/preceding-sibling::td/input[@type='checkbox']")).click();

// For the second case
driver.findElement(By.xpath("//label[text()='Some Text2']/preceding-sibling::input[@type='radio']")).click();

谢谢你,真管用!有没有一个文档可以让我找到这个方法的解释,这样我就可以自己解决未来类似的问题?实际上,它是常见的
XPath
语法
前面的同级
以及后面的同级允许您在
DOM
中处理同一级别上的上一个/下一个元素。如果你打算大量使用
selenium
和定位器,我建议你把它放到你的浏览器书签中:有很多关于
XPath
CSS
选择器的内容谢谢!这个例子怎么样:
Some Text Some Number
Same scheme:
//td[span[Text()=“Some Text”]]/previous sibling::td/input
ook…:)您可以使用“parent for all”元素-
如下:
tr[td[span[text()=“Some Number”]]和td[span[text()=“Some text”]]]/td/input
这会起作用,但我不知道id。场景是:有人定义参数,参数就是标签。所以我只有标签来找到它们所指的按钮。