我有非常简单的 AngularJs 1.4.8 前端:
填写表单并按下确定按钮后,新人将被添加到表格中。
表单位于addingPersonController
,表格位于allPersonsController
,两个都是masterController
下的孩子。
添加用户(确定点击)后,会发生以下情况:
POST
请求发送到服务器以添加新人。personAddedEvent
到$emit
addingPersonController
发出masterController
masterController
向updatePersonsEvent
allPersonsController
allPersonsController
向服务器发送GET请求以获取所有人并更新表。我有一个量角器端到端测试练习这个案例,问题是我无法弄清楚如何等待整个过程完成之前检查断言和测试总是失败。
手动测试时,UI工作正常,我试图在量角器测试中等待:
browser.wait(function(){}, timeout);
browser.sleep(ms);
.click().then();
他们都没有工作 有没有办法在检查断言之前等待这样的过程完成?
答案 0 :(得分:3)
我的e2e测试也遇到了类似的问题。可以添加几种解决方法。取决于情况,主要是由于某种非响应超时(量角器/ selenium和浏览器之间失去同步)。由于缺乏资源(GPU/VRAM
,RAM
或CPU
),这就像PC的挂起。这导致内置的"等待角度工作完成" 的量角器失去了跟踪。并在应该运行之前运行规范。
以下是我建议您尝试的列表:
browser.waitForAngular();
browser.wait()
一起使用这始终是最好的,因为它肯定适用于所有情况。即使在外面的角度环境关于这个的坏事是...输入 browser.wait( ExpectedConditions.textToBePresentInElement( $('#someId'), "Person's Name"), 10000);
编辑: 错别字,让答案更容易理解