繁体   English   中英

单选按钮的@FindBy注释

[英]@FindBy annotation for radio buttons

我必须使用@FindBy选择类型单选按钮的几个值之一。 这是我需要自动化的html代码。

我尝试给@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>

@FindBy的值不能是动态的。 您可以将其拆分为两个

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

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

或同时插入它们以列出和使用索引

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

@Guy提供了更多支持该解决方案的解释,您可以编写一种动态选择广播的方法。 举个例子

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

您可以根据需要使用迭代器。 您只需要通过将objectName传递给参数的页面对象来调用此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM