我们在传统页面上写了一些写得不好的单选按钮,如下所示:
<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()与其不匹配。
我需要找到文本,然后立即点击输入?我可以不消耗和遍历整个页面吗?
答案 0 :(得分:1)
对于第一个示例,您可以通过ID
访问按钮:
driver.findElement(By.id("button1")).click(); //first button
和
driver.findElement(By.id("button2")).click(); //second button
如果ID不足,您可以xpath
通过id
和value
访问这些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,则选择单选按钮
希望这有帮助