2015-04-08 57 views
1

我正在運行Selenium自動化測試來瀏覽嚮導。每個步驟都有一個階段計數器來跟蹤當前步驟。我assertEquals(在屏幕上)隱藏舞臺元素來聲明我在正確的頁面。硒測試失敗無頭,在Firefox中取得成功

在嚮導的每個頁面上都有一些東西需要填寫,如用戶名。然後你點擊下一頁並進入下一頁,並且階段計數器增加1.

最後一個階段是階段4,當提交最後階段時,您將重定向到階段計數爲1的新嚮導。

該向導顯示在Twitter Bootstrap 3模式窗口中。

當我在無頭模式下運行測試時斷言此新嚮導中的階段計數爲1失敗。 現在仍然是4.我也找不到任何元素。所以看起來這個頁面在無頭模式下沒有正確加載。 我已經嘗試每次點擊後Thread.sleep(5000),以確保它正確加載。我還試着等到元素出現後才聲稱階段計數變爲1. 結果是沒有這樣的元素異常。

所以我的問題是,什麼是在無頭模式,可以導致這種情況發生?

driver.findElement(By.xpath("ElementImLookinFor")).clear(); 
    driver.findElement(By.xpath("ElementImLookinFor")).sendKeys("test"); 
    driver.findElement(By.name("submit")).click(); 
    stageElementCheck("4"); 
    driver.findElement(By.xpath("TermsOfUseElement")).click(); 
    driver.findElement(By.name("submit")).click(); 

    stageElementCheck("1"); //expected 1 was 4 

    driver.findElement(By.xpath("ElementImLookinFor")).click(); 
    driver.findElement(By.name("submit")).click(); 


public void stageElementCheck(String i){ 
     assertTrue(isElementPresent(By.xpath("HiddenStageElement"))); 
     assertEquals(i,driver.findElement(By.xpath("HiddenStageElement")).getAttribute("value")); 
    } 

爲了實現無頭:

driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_24); 
     ((HtmlUnitDriver) driver).setJavascriptEnabled(true); 
     Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF); 
     driver.manage().timeouts().implicitlyWait(timeoutSeconds, TimeUnit.SECONDS); 
+0

你能分享你的代碼嗎? – Saifur

+0

您使用什麼設置在「無頭模式」下運行測試?有很多不同的方式來實現「無頭模式」。 (用這個信息編輯你的問題。) – Louis

回答

0

我建議你使用類似的Xvfb X服務器工具在無頭的模式下運行硒UI測試。它易於配置。

相關問題