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);
你能分享你的代碼嗎? – Saifur
您使用什麼設置在「無頭模式」下運行測試?有很多不同的方式來實現「無頭模式」。 (用這個信息編輯你的問題。) – Louis