如何修复量角器,它突然开始失败

时间:2016-08-10 04:29:30

标签: protractor

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

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

以前使用的代码

hero

现在抛出错误:

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)

我们试过了   - > browser.switchTo().alert().accept(); UnexpectedAlertOpenError: unexpected alert open: {Alert text : are you sure you want to remove this helper content?} (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) 而不是睡觉。   - 睡了很长时间   - 忽略角度。

似乎没有任何差别。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

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

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

请注意,有一个新的量角器主要版本及更新版本。因此更新量角器也可能解决问题。

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

用于量角器版本4.x
您应该修改文件./node_modules/protractor/node_modules/webdriver-manager/config.json

答案 1 :(得分:1)

我们如何确定2000ms的睡眠足够好?正是因为这个原因,在测试中不推荐睡眠。相反,您可以使用正确的等待并轮询警报。通过这种方式,您可以知道在某个约定的超时后,警报从未出现并且测试正确无效

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