2016-08-30 7 views
0

Это часть 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(); 

, но это не сработало.

Спасибо.

ответ

2

Если вы хотите, чтобы выбрать его по тексту, вы можете использовать xpath «s метод 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; 
    } 
} 

EDIT: в случае, если у вас есть пробелы до или после текста:

driver.FindElement(By.Xpath(".//input[contains(text(),'Por tempo indeterminado')]")); 
+0

Cosmin, я попробую второй подход и посмотрю, работает ли он, или, может быть, проблемы с пробелами. Благодарю. – Robert

Смежные вопросы