启动应用程序后,只执行脚本的第一行。在第一个语句之后,没有一个语句有效

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如下所示

enter image description here

Protractor.config.js如下所示

enter image description here

我用于执行测试规范的命令。 我导航到我的脚本存储在本地计算机中的位置。 在上面的位置打开命令提示符。然后我从命令行运行以下命令: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不是预备

请修理它,你会得到它。

以上是关于启动应用程序后,只执行脚本的第一行。在第一个语句之后,没有一个语句有效的主要内容,如果未能解决你的问题,请参考以下文章

Oracle只取第一行

网络编程之多线程

shell调用mapreduce结束后无法获取结束状态

怎么设置pl/sql按f8执行一行

如何实现插入一条记录把这条记录放到表的第一行

Linux操作系统基础操作之shell脚本编写