2016-10-05 3 views
0

@FindBy을 사용하여 라디오 버튼 유형의 여러 값 중 하나를 선택해야합니다. 다음은 자동화해야하는 html 코드입니다.라디오 버튼에 대한 @FindBy 주석

나는 시도했다. @FindBy(how=How.CSS,using= "[type='radio']" and value) 하지만 값을 동적으로 전달해야한다. 즉. BlueSkies 또는 Pangea 항공사를 선택했습니다. 작성하는 가장 좋은 방법은 무엇입니까? @FindBy은 WebElements 목록을 반환하며 이와 같이 작업 할 수 있습니다. 도와주세요.

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

답변

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

좀 더 설명과 함께 작업 모두를 삽입하는 두

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

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

또는로 나눌 수 있습니다, 당신은 방법을 쓸 수 있습니다 라디오를 동적으로 선택합니다. 예를 들어

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

원하는 경우 반복기를 사용할 수 있습니다. airlineName을 인수로 전달하는 페이지 객체로이 메소드를 호출하면됩니다.

3

@FindBy의 값은 동적 일 수 없습니다. 당신은 나열하고 솔루션 @Guy에 의해 제공 지원 인덱스

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

예, @rajsat, 위의 radioButtons 목록에서 값을 제공하여 웹 요소를 반환하는 사용자 정의 메서드를 정의 할 수 있습니다. –

관련 문제