Selenium WebDriver-从隐藏选择中获取选项 [英] Selenium WebDriver - get options from hidden select

查看:201
本文介绍了Selenium WebDriver-从隐藏选择中获取选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to get all the options from a hidden select. Select has "display: none;" part so I ran into a problem.

<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());
}

如果有代码,请显示代码示例.

Please display code example if You have any.

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

firebug view: http://imageshack.us/f/138/primjer.png/ LOOK THIS

推荐答案

问题是硒无法单击不可见元素(或以其他方式与不可见元素进行交互).因此,js应该会有所帮助.我将通过以下方式解决该问题:

The matter is selenium unable to click invisible elements (or interact with invisible elements in other ways). So js should help. I would resolve it in the following way:

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);
}

请在检查时让我知道是否有问题.

Please let me know if something wrong as soon as you check.

这篇关于Selenium WebDriver-从隐藏选择中获取选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆