启动应用程序后,只执行脚本的第一行。在第一个语句之后,所有语句都不起作用

时间:2018-02-23 15:47:16

标签: angular protractor

我收到以下错误。

  

失败:等待异步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如下所示

enter image description here

Protractor.config.js如下所示

enter image description here

我用于执行测试规范的命令。 我导航到我的脚本存储在本地计算机中的位置。 在上面的位置打开命令提示符。然后我从命令行运行以下命令: npm运行量角器 注意:我使用Visual Studio professional 2017(版本15.4.5)编写了我的脚本

3 个答案:

答案 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不在预备

请修理它,你就可以得到它。