使用selenium WebDriver从文本中选择单选按钮

时间:2014-09-17 05:52:46

标签: html selenium radio-button webdriver

我们在传统页面上写了一些写得不好的单选按钮,如下所示:

<input id="button1" name="button" value="32" onchange="assignProduct(this.value);" type="radio"></input>
RADIO TEXT 1
<input id="button2" name="button" value="33" onchange="assignProduct(this.value);" type="radio"></input>
RADIO TEXT 2

有关信息,显示的内容与:

相同
<input id="button" name="button" value="32" onchange="assignProduct(this.value);" type="radio">RADIO TEXT 1</input>
<input id="button" name="button" value="33" onchange="assignProduct(this.value);" type="radio">RADIO TEXT 2</input>

后一个代码更正确,允许通过文本选择输入按钮&#34; RADIO TEXT 2&#34;由:

driver.findElement(By.xpath("(//input[contains(@text, 'RADIO TEXT 2')])")).click();

我可以使用哪些代码在第一个代码示例中查找单选按钮,这是我实际需要处理的内容?

文本不再包含在元素中,因此.xpath()与其不匹配。

我需要找到文本,然后立即点击输入?我可以不消耗和遍历整个页面吗?

3 个答案:

答案 0 :(得分:1)

对于第一个示例,您可以通过ID访问按钮:

driver.findElement(By.id("button1")).click(); //first button

driver.findElement(By.id("button2")).click(); //second button

如果ID不足,您可以xpath通过idvalue访问这些ID:

driver.findElement(By.xpath("//input[@id='button1'][@value='32']")).click(); //first button

driver.findElement(By.xpath("//input[@id='button2'][@value='33']")).click(); //first button

答案 1 :(得分:1)

使用XPath axes。在这个特殊情况下following-sibling。我设计了一个定位器来在此页面上演示它。看看@bansalshah的回答。让我们选择<p>,其中以下文字包含for eg。它有效,我检查了这个:))

.//*[@id='answer-25883774']//div[@class='post-text']/p[./following-sibling::*[contains(., 'for eg')]]

因此,在您的情况下,要选择RADIO TEXT 2的输入,这应该类似于

.//input[@type='radio'][./following-sibling::*[contains(., 'RADIO TEXT 2')]]

答案 2 :(得分:0)

从我可以看到的代码中,您可以使用文本

映射值

表示无线电文本1的值= 32 并从xpath获取值

如果值= 32,则选择单选按钮

希望这有帮助