这是HTML页面的一部分,我需要访问第一个单选按钮:
<div>
<div class="clear">
<div class="relativeinput" style="top:8px;">
<label class="clear" for="txtTempo">
<input style="background-color: #E7E7E7;" name="rdoPrazoAcesso" type="radio">Unlimited time
</label>
</div>
</div>
<div class="clear">
<div class="relativeinput" style="top:20px; width:50px">
<label class="clear" for="rdoDias">
<input style="background-color: #E7E7E7;" name="rdoPrazoAcesso" type="radio">For
</label>
</div>
<div class="relativeinput" style="top:20px;">
<input disabled="" class="pie | input-white |" size="1" ;="" style="text-align: center;font-size: 1.5em; position: absolute;" name="txtDias" type="text">
<label class="clear" for="txtDias" style="padding-left: 70px; position: absolute;">
days
</label>
</div>
</div>
<div class="clear">
<div class="relativeinput" style="top:30px;">
<label class="clear" for="txtAcesso">
<input style="background-color: #E7E7E7;" name="rdoPrazoAcesso" type="radio">Just for today
</label>
</div>
</div>
</div>
如何才能获取元素<input style="background-color: #E7E7E7;" name="rdoPrazoAcesso" type="radio">Por tempo indeterminado
才能选择它?请记住,有多个具有相同名称的电台。
我尝试做类似
的事情driver.findElement(By.xpath("//input[text()='Por tempo indeterminado']")).click();
但它没有用。
感谢。
答案 0 :(得分:2)
如果您想通过文字选择它,可以使用xpath
的方法text()
:
driver.FindElement(By.Xpath(".//input[text()='Por tempo indeterminado']"));
另一种方法是,通过文字再次获取所有单选按钮并获得所需内容:
var radioBtnList = driver.FindElements(By.Name("rdoPrazoAcesso"));
foreach(var radioBtnItem in radioBtnList)
{
if(radioBtnItem.Text == "Por tempo indeterminado")
{
//do your stuff
break;
}
}
编辑: 如果您在文本之前或之后有空格:
driver.FindElement(By.Xpath(".//input[contains(text(),'Por tempo indeterminado')]"));