3

我想从隐藏的选择中获取所有选项。选择有“显示:无;” 部分所以我遇到了一个问题。

<select name="fw3k_ad_input_et_type_group" 
            class="" id="_id_fw3k_ad_input_et_type_group" 
            onchange=" eurotax.change_type_group( this.value ); " 
            style="display: none; ">

        <option value="0">1</option>
        <option value="-1" class="special">2</option>
        <option value="16390">CD</option>
        <option value="17605">S</option>
        <option value="17636">SE</option>

</select>

我的代码:

Select tipSelect = new Select(driver.findElement(By.name("fw3k_ad_input_et_type_group")));
for (WebElement b : tipSelect.getOptions()) {
            System.out.println(b.getText());
}

如果您有任何代码示例,请显示代码示例。

萤火虫视图:http: //imageshack.us/f/138/primjer.png/看 这个

4

2 回答 2

0

可以使用“display: none;”在萤火虫中选择元素 属性。它们不会在页面上概述,而是在 html 树结构中。 请参阅使用 firebug 验证元素的示例

然后,验证您是否使用 firebug 正确找到了元素

String optn=select[name="fw3k_ad_input_et_type_group"] option[value="0"]
//optn1=select[name="fw3k_ad_input_et_type_group"] option[value="-1"]
//optn2=select[name="fw3k_ad_input_et_type_group"] option[value="16390"]
//optn3=select[name="fw3k_ad_input_et_type_group"] option[value="17605"]
//optn4=select[name="fw3k_ad_input_et_type_group"] option[value="17636"]

然后尝试使用 jscript 执行器(应该始终工作而不考虑元素是否可见)

JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("var x = $(\""+optn+"\");");
        stringBuilder.append("return x.text().toString();")       ;


       String res= (String) js.executeScript(stringBuilder.toString());

希望这对你有用)

于 2012-09-10T12:08:46.930 回答
0

问题是 selenium 无法单击不可见元素(或以其他方式与不可见元素交互)。所以js应该有所帮助。我将通过以下方式解决它:

String css1="ul>li:last-child>div[id=unos_select_wrap] select[id="_id_fw3k_ad_input_et_type_group"]>option[value='0']";
String css2="ul>li:last-child>div[id=unos_select_wrap] select[id="_id_fw3k_ad_input_et_type_group"]>option[value='-1']";
String css3="ul>li:last-child>div[id=unos_select_wrap] select[id="_id_fw3k_ad_input_et_type_group"]>option[value='16390']";
String css4="ul>li:last-child>div[id=unos_select_wrap] select[id="_id_fw3k_ad_input_et_type_group"]>option[value='17605']";
String css5="ul>li:last-child>div[id=unos_select_wrap] select[id="_id_fw3k_ad_input_et_type_group"]>option[value='17636']";

public void getOptionTextAndPrintIt(String cssSelector){
JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("var x = $(\""+cssSelector+"\");");
        stringBuilder.append("return x.text().toString();");
       String res= (String) js.executeScript(stringBuilder.toString());
    System.out.println(res);

}
public void allOptionValuesDepiction(){
getOptionTextAndPrintIt(css1);
getOptionTextAndPrintIt(css2);
getOptionTextAndPrintIt(css3);
getOptionTextAndPrintIt(css4);
getOptionTextAndPrintIt(css5);
}

请在检查后立即告诉我是否有问题。

于 2012-09-10T15:05:44.643 回答