我收到以下错误。
失败:等待异步Angular任务完成超时 100秒后。这可能是因为当前页面不是 角度应用。请参阅常见问题解答了解更多详情: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular 在等待带定位符的元素时 - Locator:By(css selector,* [id =“password”])Stack: ScriptTimeoutError:异步脚本超时:100秒内未收到结果
enter image description here enter image description here
我可以打开Chrome浏览器并启动应用程序。启动应用程序后,只执行脚本的第一行。即。我可以将密钥发送到用户名文本框。在此之后我的脚本没有被执行。
注意: 1.如果我包含元素(by.id('password'))。sendKeys('test');作为启动应用程序后的第一行,它将工作。 2.我也尝试了所有定位器,但我仍然遇到同样的错误。
我能够找到页面中的所有元素,这里的问题是在browser.get(“”)之后;声明,只有第一个声明有效。第一个语句可以是查找用户名或密码文本框。在第一个语句之后,没有一个语句有效。
Test.e2e.js如下所示
Protractor.config.js如下所示
我用于执行测试规范的命令。 我导航到我的脚本存储在本地计算机中的位置。 在上面的位置打开命令提示符。然后我从命令行运行以下命令: npm运行量角器 注意:我使用Visual Studio professional 2017(版本15.4.5)编写了我的脚本
答案 0 :(得分:0)
您应该在protractor.conf.js
块中的onPrepare() {}
中添加禁用为Angular app创建的特殊量角器等待的参数。
// protractor.conf.js
...
onPreapare() {
browser.waitForAngularEnabled(false)
}
您可以直接在Protractor API
中查看该功能答案 1 :(得分:0)
如果您正在测试非基于角色的网站,则必须在页面类中使用browser.ignoreSynchronization = true;
。
答案 2 :(得分:0)
如下所述,您应该使用waitForAngularEnabled:
onPrepare() {
browser.waitForAngularEnabled(false)
}
但Oleksii的答案中有一个错字:onPreapare不在预备
请修理它,你就可以得到它。