2013-10-29 29 views
0

我使用Java硒來控制瀏覽器(打開網頁,刪除cookie等)。每當我有一個警告,我解僱,如下所示:Java Selenium:如何從UnhandledAlertException處理程序中獲取NoAlertPresentException?

try 

{ 

    webDriver.someFunc(); 

} 

catch (UnhandledAlertException error) 

{ 

    webDriver.switchTo().alert().dismiss(); 

} 

然後,在某些情況下,我在嘗試解除警報時拋出的NoAlertPresentException

我不明白,這怎麼可能,我得到從UnhandledAlertException處理器中拋出NoAlertPresentException ?????

感謝

回答

-1

首先,我必須說,這未處理的警報的概念是沒有意義的我,因爲警報由操作觸發。如果你不明白警報是如何觸發的,你應該與開發人員討論這個問題,並以正確的方式處理。話雖這麼說,看看到DesiredCapabilities - >CapapilityType -> UNEXPECTED_ALERT_BEHAVIOUR

+0

首先,正如我說的(在本頁面的頂部):我使用Java硒爲了控制瀏覽器(打開網頁,刪除cookie等)。當我打開這些頁面或嘗試關閉它們時,某些頁面會觸發瀏覽器警報。我不是「有開發者」(即,我是開發者)。其次,你提供的鏈接帶給一個常量的Java String。究竟如何幫助解決我所描述的問題?謝謝。 –

+0

類似於:DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR,UnexpectedAlertBehaviour.ACCEPT);驅動程序=新的FirefoxDriver(功能); –

+0

但我仍然堅持我的第一個聲明。 「當我打開這些頁面或嘗試關閉它們時,某些頁面會觸發瀏覽器警報。」 < - 這並不意外,是嗎?其次,提供的鏈接是Interface CapabilityType的文檔。 –

0

我也是得到同樣的錯誤,但我無法弄清楚,爲什麼?

我嘗試這樣做:

嘗試

{

webDriver.someFunc(); 
webDriver.switchTo().alert().dismiss(); 

}

趕上(UnhandledAlertException錯誤)

{

//忽略

}

這應該有效。 問題與您的代碼可能是: 假設你點擊一些按鈕,打開警報,你已經把在嘗試block.As儘快unhandledalertexception被觸發(打開警報時),它會自動解散的警報,使得下一條語句變得無效,因此您在catch塊中定義的語句變得無效,並且它顯示沒有發現警報異常,因爲警報已被解除。 但我仍然試圖找出爲什麼unhandledalert例外,在第一place.It觸發觸發突然的一些警報和亙古不顯示所有警報。

我希望這個澄清。

+0

你也可以嘗試:DesiredCapabilities dc = new DesiredCapabilities(); DC。setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR,UnexpectedAlertBehavi our.ACCEPT); driver = new FirefoxDriver(dc);還要確保你正在處理由webdriver API定義的警報。我的意思是那些developer.mozilla.org/en-US/docs/DOM/window.alert – Jagori

相關問題