2011-11-14 55 views
0

我們有一個基於RichFaces 3.3.3的應用程序。我們用Selenium IDE創建了自動化測試,運行良好。由於RichFaces的組合框並不是真正的HTML組合框,但與一羣的JavaScript的輸入領域,硒,我們需要選擇與下面的技巧值:如何使用Selenium Webdriver測試RichFaces組合框?

type  field_id "field value" 
typeKeys field_id "field value" 
fireEvent field_id "blur" 

爲了測試整合到我們的持續集成系統,我們已將測試轉換爲使用WebDriver(Selenium 2.5.0)作爲後端的jUnit測試。不幸的是,組合框技巧停止工作。

所有類型和typeKeys命令被翻譯,如下所示:

// ERROR: Caught exception [ERROR: Unsupported command [fireEvent]] 
driver.findElement(By.id("patientCreateDataForm:patientBirthDateInputDate")).clear(); 
driver.findElement(By.id("patientCreateDataForm:patientBirthDateInputDate")).sendKeys("16.06.1910"); 

沒有人有任何工作溶液,以測試RichFaces的組合框元件?

在此先感謝!

回答

1

的解決方案如下:

  1. 點擊在RichFaces的組合框
  2. 選擇項(男或女)和複製路徑以幫助FirePath
  3. 其後使用操作方法在JUnit測試。在以下示例中,按鈕參數是一個組合框按鈕的ID,被選擇的元件參數的項目的xpath:

    private void comboboxSolution(String element, String button) { 
        WebElement btn = driver.findElement(By.id(button)); 
        btn.click(); 
        WebElement myElement = driver.findElement(By.xpath(element)); 
        Actions builder = new Actions(driver); 
        builder.moveToElement(myElement).click().perform(); 
    
    } 
    
0

嘗試這樣:

typeKeys field_id "field value" 
waitForVisible (look with firebug at the id of the div that becomes visible after typing) 
click (look with firebug at the id of the entry you want to select) 
waitForNotVisible the_id_of_the previous_div 

我有這樣的解決方案,豐富的工作:suggestionbox組成部分,它應該是一個組合框容易適應。

+0

這似乎是一個硒溶液。我們對硒沒有問題,但是如果我們將測試用例導出到WebDriver jUnit腳本,它們不會選擇組合框中的元素。我用生成的webdriver代碼更新了這個問題。 – pentike

相關問題