1

次のコードを使用して、ドロップダウン リストから Selenium 2 の要素を選択しようとしています。

WebElement przyczynaZakProcesuSelect = driver.findElement(
           By.name("j_id_t:j_id_41:0:j_id_4h:0:j_id_51:0:qstloop:0:select1" ));

        Select sel = new Select( przyczynaZakProcesuSelect );
        List<WebElement> lista = sel.getOptions();
        System.out.println( "List --> count of elements :" + lista.size());
        for( WebElement e: lista){
            System.out.println( e.getText() );
        }

        sel.selectByVisibleText("yyyyyy");

InternetExplorerDriver を使用している間はすべて正常に動作し、このコードは 15 のオプションすべてをコンソールに出力し、最後のyyyyyyオプションを選択できます。これは、InternetExplorerDriver のコンソールに出力される出力です。

List --> count of elements :15
aaaaaa 
…….
……
yyyyyy 

ただし、HTMLUnitDriver を使用すると、Selenium はリストの最初のオプションのみを取得し、残りのオプションはすべて失われ、最初のオプションのみを選択できます。HTMLUnitDriver を使用すると、コンソールに次のように出力されます。

List --> count of elements :1
aaaaaa 

これは HTML コードのスニペットです。

<select id="j_id_t:j_id_41:0:j_id_4h:0:j_id_51:0:qstloop:0:select1" 
        onchange="jsf.ajax.request('j_id_t:j_id_41:0:j_id_4h:0:j_id_51:0:qstloop:0:select1',event,
                  {execute:'@form',render:'j_id_t:processContent j_id_t:ccpmScripts ccpmMessages ',
                   'javax.faces.behavior.event':'change'})" 
        class="selectboxNew frmLOK" onfocus="a4j_focus(this)" 
        title="aaaaa" 
        size="1" name="j_id_t:j_id_41:0:j_id_4h:0:j_id_51:0:qstloop:0:select1"> 
<option title="aaaaa" selected="selected" value="4650">aaaaaaaaa</option>
<option title="bbbbb" value="4643">bbbbb</option>
<option title="ccccc" value="4651">ccccc</option>
....
....
<option title="xxxxx" value="4647">xxxxx</option>
<option title="yyyyy" value="4649">yyyyy</option>
</select>

私が間違っていることは何ですか?回避策はありますか?
HTMLUnitDriver を使用してこのテストを実行する必要があります。助けてください。

4

1 に答える 1