有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

单选按钮的java@FindBy注释

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

我试着给@FindBy(how=How.CSS,using= "[type='radio']" and value) 但是我必须动态地传递值。也就是说,选择蓝旗航空或盘古航空。最好的写作方法是什么。将@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>

共 (2) 个答案

  1. # 1 楼答案

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

    更多的解释支持@Guy给出的解决方案,您可以编写一个方法来动态选择radio。例如

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

    如果愿意,可以使用迭代器。您只需要通过页面对象将airlineName作为参数传递来调用此方法

  2. # 2 楼答案

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