Selenium和JSF 2.0

ber*_*ami 4 jsf-2 selenium-webdriver

当我使用JSF2.0生成SelectOneMenu时,我在xhtml中指定的id附加到JSF生成的ID.

例如,my_fancy_id它产生j_idt9:my_fancy_id

现在我想用Selenium 2 Web Driver测试我的页面.我尝试重新找到我的选择菜单:

driver.findElement(By.id("my_fancy_id"));
Run Code Online (Sandbox Code Playgroud)

当然它找不到任何东西因为id被改变了.找到页面上的选择菜单的最佳方法是什么?

Mat*_*ndy 6

通常,表单的id前置于表单内的所有元素ID.如果您没有设置表单ID,JSF会为您执行此操作('j_idt9').解决方案:为表单分配一个id,并尝试在findElement方法中使用完整的id ,例如:

<h:form id="myForm">
 ...
</h:form>
Run Code Online (Sandbox Code Playgroud)

这样称呼它:

driver.findElement(By.id("myForm:my_fancy_id"));
Run Code Online (Sandbox Code Playgroud)