启动应用程序后,只执行脚本的第一行。在第一个语句之后,没有一个语句有效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动应用程序后,只执行脚本的第一行。在第一个语句之后,没有一个语句有效相关的知识,希望对你有一定的参考价值。
我收到以下错误。
失败:超时等待异步Angular任务在100秒后完成。这可能是因为当前页面不是Angular应用程序。有关更多详细信息,请参阅常见问题解答:https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular在使用定位器等待元素时 - 定位器:By(css选择器,* [id =“password”])堆栈: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 run protractor注意:我使用Visual Studio professional 2017(版本15.4.5)编写了我的脚本
您应该在protractor.conf.js
块中添加onPrepare() {}
,禁用为Angular应用程序创建的特殊量角器等待参数。
// protractor.conf.js
...
onPreapare() {
browser.waitForAngularEnabled(false)
}
您可以直接在Protractor API中查看该功能
如果您正在测试非基于角色的网站,则必须在页面类中使用browser.ignoreSynchronization = true;
。
如下所述,您应该使用waitForAngularEnabled:
onPrepare() {
browser.waitForAngularEnabled(false)
}
但Oleksii的答案中有一个错字:onPreapare不是预备
请修理它,你会得到它。
以上是关于启动应用程序后,只执行脚本的第一行。在第一个语句之后,没有一个语句有效的主要内容,如果未能解决你的问题,请参考以下文章