2017-05-11 116 views
2

我正在編寫一個處理警報的Firefox的Selenium測試。該警報在測試運行時出現幾分之一秒,但手動完成時警報仍然存在。任何人都可以說出這是爲什麼嗎?Selenium測試 - Firefox警報立即消失

我試着在Firefox設置此配置文件,但是這並沒有幫助:

profile.setPreference("alerts.disableSlidingEffect", true); 

誰能告訴我怎樣才能使頁面上的警報住宿?

在代碼中,我檢查了警報,因爲這,這顯然是從來沒有得到,因爲警報消失太快撞的存在:

WebDriverWait wait = new WebDriverWait(webDriver, Long.parseLong(parameters[0])); 
wait.until(ExpectedConditions.alertIsPresent()); 

回答

0

有3個國UnexpectedAlertBehaviour

  1. ACCEPT - 接受警報
  2. DISMISS - 關閉/取消警報
  3. IGNORE - ,不接受也不關閉警報
 
DesiredCapabilities dc = new DesiredCapabilities(); 
dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE); 
driver = new FirefoxDriver(dc); 

然後你可以按照每次處理警報形成觸發警報的操作並將其捕獲爲預期的異常:

 
try { 
    click(myButton); 
} catch (UnhandledAlertException f) { 
    try { 
     Alert alert = driver.switchTo().alert(); 
     String alertText = alert.getText(); 
     System.out.println("Alert data: " + alertText); 
     alert.accept(); 
    } catch (NoAlertPresentException e) { 
     e.printStackTrace(); 
    } 
} 
0

我不認爲「alerts.disableSlidingEffect 'Firefox配置文件選項應該會導致警報消失 - 相反,嘗試使用意外的設置爲'忽略'的能力來創建您的WebDriver實例。

+0

警報是預期的,這就是我正在測試的。我想讓警報出現並保持。 – naspras

+0

請分享更多的測試腳本以及您希望顯示警報的位置嗎? –