2016-08-15 78 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() 

这是我为解决这个问题所做的工作,我希望它也适用于您。