Protractor 如何修复突然出现警报故障的量角器

Protractor 如何修复突然出现警报故障的量角器,protractor,Protractor,我有一个项目已经运行了很长时间了。 最近(几周)系统测试失败 经过大量调查,我们得出结论,量角器无法识别并关闭警报 以前工作的代码 exports.removeFaq = function( index ){ console.log('deleting item at',index); exports.getContent(index).$( '[ng-click="removeFAQ($index)"]').click(); browser.sleep(2000);

我有一个项目已经运行了很长时间了。 最近(几周)系统测试失败

经过大量调查,我们得出结论,量角器无法识别并关闭警报

以前工作的代码

exports.removeFaq = function( index ){
    console.log('deleting item at',index);
    exports.getContent(index).$( '[ng-click="removeFAQ($index)"]').click();
    browser.sleep(2000);
    browser.switchTo().alert().accept();
    return browser.sleep(2000);
};
正在抛出错误:

WebDriverError: unknown error: cannot determine loading status
from unexpected alert open
  (Session info: chrome=52.0.2743.116)
  (Driver info: chromedriver=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),platform=Linux 4.2.0-38-generic x86_64) (WARNING: The server did not provide any stacktrace information)
和(使用元素浏览器):

我们试过了 -
等待
而不是睡觉。 -长时间睡眠 -忽略角度

似乎没有什么能起到任何作用


我怎样才能解决这个问题

这几天我们都遇到了同样的问题。看来我们在chromedriver 2.21。我更新到了最新版本(),似乎已经解决了这个问题

命令
webdriver manager update--chrome
对我不起作用,因此我不得不下载zip并将其解压缩到selenium目录。在量角器下

注:有一个新的量角器主版本和更新版本。因此,更新量角器也可以解决这个问题

对于量角器版本3.x
您还可以使用正确的版本修改文件
node\u modules/dragrator/config.json
,然后运行
webdriver-manager-update

对于量角器版本4.x

您应该改为修改文件
/node\u modules/dragrator/node\u modules/webdriver manager/config.json

我们如何确定
2000ms的睡眠时间足够好呢?正是出于这个原因,测试中不建议睡眠。相反,您可以使用适当的等待和轮询来获取警报。通过这种方式,您将知道,在某个约定的超时之后,警报从未出现,测试理所当然地失败

  //wait maximum up to lets 5s before giving up
  browser.wait(protractor.ExpectedConditions.alertIsPresent(), 5000); 
  browser.switchTo().alert().accept();

我在问题中提到我试过。。这没用,听起来像是解决办法。我会试试这个,让你知道。
  //wait maximum up to lets 5s before giving up
  browser.wait(protractor.ExpectedConditions.alertIsPresent(), 5000); 
  browser.switchTo().alert().accept();