我正在尝试使用以下代码从下拉列表中选择 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 运行这个测试,请帮忙。