我在尝试测试RichFaces模式面板中的元素时遇到了一些问题 在RichFaces here
的演示页面中问题是,一旦检索到一个元素,我无法与它交互,因为WebDriver会抛出一个ElementNotVisibleException。
我用firebug检查它,它看起来是灰色的,因为有些div的高度和宽度设置为0。
我尝试用高度和大小手动设置所有div,看看它是否有变化,但是没有办法让它工作,所以我想必须有一些其他因素影响模态面板的可见性,但找不到什么。
有人在richfaces面板上测试了webdriver或selenium吗?
提前致谢。
编辑: 对于代码来说,放在这里太多了,但基本上我改编了etsy网站的jbehave教程(使用spring注入依赖关系的那个),可以找到here。
该体系结构使用由maven属性配置的PropertyWebDriverProvider来使用InternetExplorer或Firefox并使用PageObject模式(所有页面都从WebDriverPage扩展)。
对于特定代码,来自JimEvans的代码给了我同样的错误。
答案 0 :(得分:1)
以下代码似乎对我使用您在问题中链接的演示网站起作用。它获取模态面板的文本内容,然后单击“按钮”关闭面板。
public void testPanel() {
WebDriver driver = new InternetExplorerDriver();
driver.get("http://livedemo.exadel.com/richfaces-demo/richfaces/modalPanel.jsf?c=modalPanel");
WebElement panelShow = driver.findElement(By.id("j_id352:link"));
panelShow.click();
WebElement panel = driver.findElement(By.id("j_id352:panelCDiv"));
WebElement panelTextElement = panel.findElement(By.className("rich-mpnl-body"));
System.out.println(panelTextElement.getText());
WebElement panelCloseButton = panel.findElement(By.id("j_id352:hidelink"));
panelCloseButton.click();
}
答案 1 :(得分:0)
我发现的唯一解决方案是通过webdriver与javascript进行所有交互