次のコードを使用して、ドロップダウン リストから 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 を使用してこのテストを実行する必要があります。助けてください。