量角器解除警报如果打开

Sak*_*uma 2 javascript selenium webdriver cucumber protractor

我正在运行量角器和黄瓜.对于许多测试,结果是有问题的,并且有时会产生警报框.

我想做的是在每个测试的开始方法中,检查是否有警报框,然后关闭/关闭它.然后继续.我面临的问题是,我不能保证总会有一个警告框,如果没有,我得到一个NoSuchAlertError: no alert open,整个脚本停止.

有没有办法解决?

当前代码:

try {
  browser.switchTo().alert().dismiss();
}catch(err){

}
Run Code Online (Sandbox Code Playgroud)

mis*_*shu 5

driver.switchTo().alert().then(
    function (alert) { alert.dismiss(); },
    function (err) { }
);
Run Code Online (Sandbox Code Playgroud)

这对我有用.如果有警报,它会解除警报,如果不存在则不采取任何措施.

改变dismiss()accept(),如果你想接受的,而不是解雇警报(OK)(取消).


Man*_* B. 5

//dismiss "wrong credentials" alert
browser.driver.sleep(2000);

browser.switchTo().alert().accept().then(null, function(e) {
  if (e.code !== webdriver.ErrorCode.NO_SUCH_ALERT) {
  throw e;
  }
});
Run Code Online (Sandbox Code Playgroud)

这在Protractor 2.0中对我有用.我确信有一个更好的解决方案,不涉及使用sleep().然而,经过几个小时的挫折之后,我很高兴看到一些有用的东西.

异常处理来自:https://code.google.com/p/selenium/wiki/WebDriverJs