我在尝试测试RichFaces模态面板内的元素时遇到了一些问题在RichFaces的演示页面中
问题是,一旦检索到一个元素,我不能与它交互,因为WebDriver抛出一个ElementNotVisibleException。
我用firebug检查它,它看起来是灰色的,因为一些div的高度和宽度设置为0。
我试图手动设置所有div的高度和大小,看看它是否改变,但没有办法使它工作,所以我想一定有别的东西影响模态面板的可见性,但找不到什么。
有没有人测试过webdriver或selenium对richfaces面板?
提前感谢。
编辑:对于代码,这里太多了,但基本上我改编了etsy网站的jbehave教程(使用spring注入依赖项的教程),可以在这里找到。
架构正在使用一个PropertyWebDriverProvider,它是由maven属性配置的,可以使用InternetExplorer或Firefox,并且正在使用PageObject模式(所有的页面都从WebDriverPage扩展)。
对于特定的代码,来自JimEvans的代码给出了相同的错误。
下面的代码似乎适用于我使用您在您的问题中链接到的演示网站。它获取模态面板的文本内容,然后单击"按钮"关闭面板。
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();
}
我找到的唯一解决方案是通过webdriver与javascript进行所有交互