2016-10-05 4 views
0

Ich muss einen der mehreren Werte des Typs Radio Button mit @FindBy auswählen. Hier ist mein HTML-Code, den ich automatisieren muss.@FindBy Annotation für Radiobuttons

Ich habe versucht, geben @FindBy(how=How.CSS,using= "[type='radio']" and value) Aber ich muss den Wert dynamisch übergeben. dh. Wählen Sie BlueSkies oder Pangaea Airlines. Was ist der beste Weg, um es zu schreiben. Wird @FindBy eine Liste von WebElements zurückgeben und kann ich so daran arbeiten. Bitte helfen Sie.

<input type="radio" name="outFlight" value="Blue Skies Airlines$361$271$7:10"/> 
</td> 
<td class="data_left" align="LEFT" bgcolor="CCCCCC"> 
<font size="-1" face="ARIAL"> 
<b>Blue Skies Airlines 361</b> 
</font> 
</td> 
<td class="data_center_mono" align="CENTER" valign="TOP" bgcolor="CCCCCC"> 
<font size="-1" face="ARIAL">7:10</font> 
<br/> 
</td> 
<td class="data_center" align="CENTER" bgcolor="CCCCCC" nowrap=""> 
<font size="-1" face="ARIAL">non-stop</font> 
</td> 
</tr> 
<tr> 
<td class="data_verb_xcols" valign="top" bgcolor="#FFFFFF" colspan="4"> 
</tr> 
<tr> 
<td class="frame_action_xrows" rowspan="2" align="CENTER" bgcolor="#FFCC00" valign="CENTER"> 
<input type="radio" name="outFlight" value="Pangea Airlines$362$274$9:17"/> 
</td> 
<td class="data_left" align="LEFT" bgcolor="CCCCCC"> 
<font size="-1" face="ARIAL"> 
<b>Pangaea Airlines 362</b> 
</font> 
</td> 

Antwort

0
@FindBy(how = How.CSS, using = "[type='radio']") 
private List<WebElement> radioButtons; 

Einige weitere Erläuterungen zur Liste und arbeiten, können Sie eine Methode schreiben Radio dynamisch auswählen. Für ein Beispiel

public void selectRadio(String airlineName){ 
    for(WebElement radio : radioButtons){ 
    if(radio.getAttribute("value").contains(airlineName) 
     radio.click(); 
    } 
} 

Sie können Iterator verwenden, wenn Sie möchten. Sie müssen diese Methode nur nach Seitenobjekt aufrufen, indem Sie den airlineName als Argument übergeben.

3

Der Wert in kann nicht dynamisch sein. Sie können es auf zwei

@FindBy(how = How.CSS, using = "[value*='Blue Skies Airlines']") 
private WebElement blueSkyesRadioButton; 

@FindBy(how = How.CSS, using = "[value*='Pangea Airlines']") 
private WebElement pangeaAirlinesRadioButton; 

teilen oder sie beide zum Einfügen mit Indizes die Lösung geben, indem @Guy Unterstützung

@FindBy(how = How.CSS, using = "[type='radio']") 
private List<WebElement> radioButtons; 
+0

Ja, @rajsat, Sie können eine benutzerdefinierte Methode zum Zurückgeben von Webelementen definieren, indem Sie den Wert aus der obigen RadioButtons-Liste bereitstellen. –