我的量角器测试有问题。我的角度应用程序使用$timeout不断地从服务器轮询某些内容。不幸的是,当我运行测试时,这会导致以下错误消息:
There was a webdriver error: Error Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protrac
tor/blob/master/docs/faq.md
我如何处理这种持续的轮询超时?在我的情况下,将browser.ignoreSynchronization
设置为false
不是一个好的解决方案(当我这样做时,我必须插入大量browser.sleep()
)
在我的应用程序中,目前无法按照这里的建议从$timeout切换到$interval。增加超时也是不可能的(正如我所说,服务正在不断地从服务器轮询某些内容)
是否有可能更改 waitForAngular
例程,以便我的测试不会超时?
我们将非常感谢您的帮助。
在量角器配置文件中添加allScriptsTimeout: 50000
exports.config = {
...
allScriptsTimeout: 50000,
...
};
或者至少这解决了我的问题
与你同舟共济。
我们已经看到很多帖子讨论睡眠()
,waitForAngular()
和browser.ignore同步
。
我同意你的看法,设置:ignoreSync = true
不是一个好主意,因为它迫使我们手动等待每个异步进程。
一些人建议像这样一起使用sleep()
,然后waitForAngular()
:
browser.sleep(10000);
browser.waitForAngular();
我真的不明白为什么有时< code>waitForAngular()无法等待页面同步完成,而这种“双重等待”代码确实有效。
请看看它是否适用于您的情况。
从量角器的留档:
在执行任何操作之前,量角器会要求 Angular 等待页面同步。这意味着所有超时和 http 请求都已完成。如果应用程序持续轮询$timeout或$http,则永远不会将其注册为完全加载。您应该将$interval服务(间隔.js)用于连续轮询的任何内容(在 Angular 1.2rc3 中引入)。
问题内容: 我正在测试AngularJS应用程序,并且对量角器非常新。每次我打开浏览器时,它都会打开,然后等待超时,然后在cmd上引发以下错误。 我尝试增加超时限制,但始终会收到此错误。我也尝试过使用所有这些: 该页面正确加载,并且如果我使用Eclipse和Selenium与按钮对象进行交互,则可以正常工作。 只有量角器出现同步问题。请帮忙。 问题答案: 量角器超时的可能原因: 您的网页未以预期的
问题内容: 我的档案是: 我的节点项目在9001端口上运行并在监听。 我的测试是: 我得到的错误是: 我究竟做错了什么?? 问题答案: (非常简短的版本): 使用代替。 较长的版本: Protractor基本上是Selenium及其Javascript WebDriver代码的包装。量角器添加代码以等待Angular“安顿下来”(即完成$ digest循环),然后继续测试代码。但是,如果您的页面上
问题内容: 我正在使用小型AngularJS应用测试量角器。 这是测试: 控制器: 草稿服务: 使用量角器运行此测试会导致以下错误: 但是,如果在控制器中更改此行: 对此: 测试失败,但未达到预期目的,但更重要的是:它不会超时。 启用query()时,在浏览器中手动运行应用程序以及查看Protractor打开的浏览器窗口时,转发器均会正确显示API返回的数据。 当服务与API通信时,为什么Prot
我试图遵循量角器官方网站上的量角器教程,但我甚至无法完成步骤0。 我在用量角器 之后,我一直在遵循教程的第0步。我有配置。js文件和test-spec.js文件如下: 配置js公司 测试规范js 当我运行protector
运行protactor时,出现以下错误:
我一直在尝试使用android studio emulator,但我无法在emulator上运行我的应用程序。当我运行我的应用程序时,它会显示带有以下详细信息的模拟器: > Hax已启用 Hax ram\U尺寸0x40000000 HAX正在工作,emulator以快速virt模式运行。 端口5554上的控制台;5555港口ADB 之后,将进入下一个选项卡启动应用程序,并显示等待设备联机。之后显示
我已安装了带有独立selenium服务器的量角器: 如果我在单机服务器已经运行的情况下运行Gradulator,并且配置指向该selenium实例,那么它可以正常工作。 我想让量角器启动服务器,然后运行测试。默认情况下,量角器会找到chrome驱动程序和selenium服务器jar,所以我使用最小配置: 但当它启动时,它无法连接到服务器。 我注意到,当使用webdriver manager启动se
问题内容: 我有一个单击按钮并重定向到用户仪表板的测试。发生这种情况时,Webdriver返回: 为了解决这个问题,我将插入到发生重定向的位置,并假设我的CPU使用率很低,这可以解决此问题。但是,2000 ms是任意的并且很慢。是否有类似的东西会等到Angular在重定向页面上加载之前? 问题答案: 您认为这样的事情对您有用吗?最多需要等待10秒,URL才能包含文本“ pageTwo”或您输入的任