3

非表示の選択からすべてのオプションを取得したい。Select has "display:none;" 一部なので、問題が発生しました。

<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;」で firebug の要素を選択することが可能です。属性。それらはページでは概説されませんが、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 executor を使用してみてください (要素が表示されているかどうかを考慮せずに常に動作するはずです)。

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

問題は、見えない要素をクリックできない (または他の方法で見えない要素とやり取りする) セレンです。したがって、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 に答える