2016-08-15 77 views
0

最近,我們開始寫測試在Chrome瀏覽器中執行,但我們使用的是遇到問題處理瀏覽器生成提醒,很容易在Internet Explorer處理:無法處理Chrome警報,C#的NUnit的webdriver

var options = new InternetExplorerOptions(); options.UnexpectedAlertBehavior = "Accept"

是否存在ChromeOptions等效物?

回答

0

我有同樣的問題,由此我C#測試拋出這個錯誤 - 「OpenQA.Selenium.UnhandledAlertException:意外警告開放:{警報文本:你確定嗎?}」每個有瀏覽器生成的預警時間和測試立即生成警報。

在我的測試中,當我嘗試刪除或編輯測試應用程序中的某些值時,會生成警報。所以,我通過寫這段代碼解決了這個問題接受的警報;

public void ClickAcceptOnJsAlert() 
{ 
    var js = driver as IJavaScriptExecutor; 
    if (js != null) 
    { 
     js.ExecuteScript("window.alert = function(){}"); 
     js.ExecuteScript("window.confirm = function(){return true;}"); 
    } 

} 

而這段代碼拒絕警報;

public void ClickDismissOnJsAlert() 
{ 
    var js = driver as IJavaScriptExecutor; 
    if (js != null) 
    { 
     js.ExecuteScript("window.alert = function(){}"); 
     js.ExecuteScript("window.confirm = function(){return false;}"); 
    } 

} 

但是,要使用這段代碼,您需要通過干預來預測警報;例如,如果點擊特定的元素生成警報,我這樣做是爲了接受警報;

ClickAcceptOnJsAlert(); 
element.Click(); 

或以下來擺脫警報;

ClickDismissOnJsAlert(); 
element.Click() 

這是我爲解決這個問題所做的工作,我希望它也適用於您。