2017-04-05 49 views
0

我有以下代碼來驗證警報文本,然後解僱。驗證警報文本失敗。無法使用硒webdriver獲取警報文本

WebDriverWait wait = new WebDriverWait(driver, 10); 
      wait.until(ExpectedConditions.alertIsPresent()); 
      Alert alert = driver.switchTo().alert(); 
      alertText = alert.getText(); 

alertText返回爲空。因此,斷言文本的下一步是失敗的。 下一步:

driver.switchTo().alert().accept(); 

接受警報沒有任何問題。

另一個奇怪的場景是當我在eclipse中調試它的工作正常。但是當我運行斷言時會拋出錯誤。

在運行和調試時發現的另一個差異。 在運行警報時出現此消息不要讓此頁面創建更多消息

看起來很奇怪。

+0

我試過,但它力幫助。 – manutd

+0

什麼是目前警報? – kushal

回答

2

將消息顯示爲「不要讓此頁創建更多消息」是瀏覽器功能,以防止網站顯示數百條警報。

在調試代碼時,它正在工作,即使在運行時也應該可以工作。如果不能正常工作,肯定會遇到同步問題我希望增加一些hardwait肯定有幫助。

其他的方法來從警報彈出得到警報文本:

public String getJsAlertText() 
{ 
Object txt = ((JavascriptExecutor)driver).executeScript("return 
window.alert.myAlertText;"); 
return (String)txt; 
} 
+0

將消息顯示爲「不要讓此頁創建更多消息」是瀏覽器功能,以防止網站顯示數百條警報。但爲什麼只有在跑步時纔會來。在調試的時候我並沒有注意到這一點。 – manutd

+0

根據我在調試時的知識,我們將等待一段時間來執行任何操作,我的意思是說,只要你說進行步驟執行不會發生。然而,在幾秒內發生連續操作時,瀏覽器認爲它是一些JS代碼問題,並嘗試通過在無限循環中調用alert來凍結瀏覽器。 – MamathaMacherla

+0

Object txt =((JavascriptExecutor)driver).executeScript(「return window.alert.myAlertText;」); 這是拋出異常。出現模態對話框。我們怎樣才能做到這一點? – manutd

相關問題