2011-07-11 23 views
0
我有一些問題想測試一個RichFaces的內部元素

模式面板,在here硒(webdriver的),看不到RichFaces的模式面板

的問題是,一旦檢索到的RichFaces的演示頁面的一個 元素我無法與它交互,因爲WebDriver拋出ElementNotVisibleException。

我用螢火檢查它,它是灰色的,因爲有些申報單的有高度和寬度設置爲0

我試圖用高度和大小手動設置所有的div,看它是否但沒有辦法讓它工作,所以我想必須有其他的東西影響模態面板的可見性,但是找不到。

有沒有人測試過webdriver或硒對richfaces面板?

在此先感謝。

編輯︰ 對於代碼,是太多放在這裏,但基本上我適應etsy網站(使用彈簧注入依賴項)的jbehave教程,可以找到here

該體系結構正在使用由Maven屬性配置的PropertyWebDriverProvider,以使用InternetExplorer或Firefox並使用PageObject模式(所有頁面均從WebDriverPage擴展而來)。

對於特定的代碼,來自JimEvans的代碼給了我同樣的錯誤。

+0

做所有的JavaScript交互這將是有益的,如果你能提供演示了遇到的問題測試代碼。你可以對演示頁面這樣做嗎? – JimEvans

回答

0

只有解決辦法,我發現是通過webdriver的

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(); 
} 
+0

非常感謝您的回答。基本上這是我正在做的,但只是以防萬一我試圖複製和粘貼,並仍然無法正常工作。仍然得到ElementNonVisibleException。與您的代碼唯一不同的是,我使用PropertyWebDriverProvider可以使用InternetExplorer和Firefox,但我檢索的驅動程序是InternetExplorer。我將在這個問題上添加更多信息 – jasalguero

+0

需要注意的一件重要的事情是您實際獲取ElementNotFoundException的位置。當獲取鏈接點擊以使模式面板顯示時,我遇到了ElementNotFoundException的一些問題,直到我得到該元素的ID正確。我是否正確理解你,上述代碼在你的環境中不起作用? – JimEvans

+0

確切地說,複製除第一行以外的所有內容,我使用webDriver()方法從我的頁面(它是WebDriverPage的子類)中檢索驅動程序 – jasalguero