如何通过标签获取WebElement按钮

时间:2017-01-23 17:27:36

标签: java selenium button label

我在一个Java项目上工作,我必须用Selenium做一些UAT。 我不了解Web开发,所以我不确定我的问题是否可以解决。 问题是: 有一个网页,您可以在其中勾选一些单选按钮或复选框。所有这些人都在他们旁边有一个带有文字的字段。所以我想找到那些带有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>

这是来自Page的一些代码。现在我想用id = equipmentChecker6获取Webelement,但我只有文字&#34; Some Text1&#34;。

在第二个例子中,我想通过文本&#34; Some Text2&#34;来获得id = optionRadio5:_0。标签对象。 有没有办法通过Selenium将按钮元素作为Webelements in Java?

请求帮助

2 个答案:

答案 0 :(得分:1)

您可以使用类似

的内容
// 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();

答案 1 :(得分:0)

https://loadfocus.com/blog/2013/09/05/how-to-locate-web-elements-with-selenium-webdriver/

driver.findElement(By.id(&#34; element id&#34;))

所以在这种情况下:

driver.findElement(By.id(&#34; equipmentChecker6&#34;))