2016-08-30 1 views
0

Dies ist Teil einer HTML-Seite, wo ich das erste Optionsfeld zugreifen müssen:von inneren Text

<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> 

Wie kann ich das Element <input style="background-color: #E7E7E7;" name="rdoPrazoAcesso" type="radio">Por tempo indeterminado, um der Lage sein, sie zu wählen? Denken Sie daran, dass es mehr als ein Radio mit dem gleichen Namen gibt.

Ich habe versucht, so etwas wie

driver.findElement(By.xpath("//input[text()='Por tempo indeterminado']")).click(); 

aber es funktionierte nicht zu tun.

Danke.

Antwort

2

Wenn Sie es, indem Sie Text auswählen möchten, könnten Sie xpath ‚s Methode text():

driver.FindElement(By.Xpath(".//input[text()='Por tempo indeterminado']")); 

Eine andere Möglichkeit, alle Radio-Buttons zu bekommen wäre und bekommen, was Sie brauchen, wieder durch Text:

var radioBtnList = driver.FindElements(By.Name("rdoPrazoAcesso")); 
foreach(var radioBtnItem in radioBtnList) 
{ 
    if(radioBtnItem.Text == "Por tempo indeterminado") 
    { 
     //do your stuff 
     break; 
    } 
} 

EDIT: falls Sie weiß Leerzeichen vor oder nach dem Text:

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

Cosmin, ich werde den zweiten Ansatz versuchen und sehen, ob es funktioniert, oder vielleicht die weißen Leerzeichen Probleme. Vielen Dank. – Robert

Verwandte Themen