Selenium(WebDriver)无法看到richfaces模态面板

时间:2011-07-11 15:37:47

标签: testing jsf selenium richfaces webdriver

我在尝试测试RichFaces模式面板中的元素时遇到了一些问题 在RichFaces here

的演示页面中

问题是,一旦检索到一个元素,我无法与它交互,因为WebDriver会抛出一个ElementNotVisibleException。

我用firebug检查它,它看起来是灰色的,因为有些div的高度和宽度设置为0。

我尝试用高度和大小手动设置所有div,看看它是否有变化,但是没有办法让它工作,所以我想必须有一些其他因素影响模态面板的可见性,但找不到什么。

有人在richfaces面板上测试了webdriver或selenium吗?

提前致谢。

编辑: 对于代码来说,放在这里太多了,但基本上我改编了etsy网站的jbehave教程(使用spring注入依赖关系的那个),可以找到here

该体系结构使用由maven属性配置的PropertyWebDriverProvider来使用InternetExplorer或Firefox并使用PageObject模式(所有页面都从WebDriverPage扩展)。

对于特定代码,来自JimEvans的代码给了我同样的错误。

2 个答案:

答案 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进行所有交互