javascript错误:在等待结果时卸载文档
JavascriptError: javascript error: document unloaded while waiting for result
在使用量角器测试angular应用程序时。
我现在正面临一个问题。这是一个断断续续的问题。我收到"JavascriptError: javascript错误:文档卸载而等待结果"。
下面是日志:
Failures:
[18:51:46][Step 4/4] 1) vacancies should create new job listing
[18:51:46][Step 4/4] Message:
[18:51:46][Step 4/4] [31m Failed: javascript error: document unloaded while waiting for result
[18:51:46][Step 4/4] (Session info: chrome=44.0.2403.155)
[18:51:46][Step 4/4] (Driver info: chromedriver=2.15.322455 (rg5th540dac8d0c453355d3d922c91ads1231),platform=Mac OS X 10.10.4 x86_64) [0m
[18:51:46][Step 4/4] Stack:
[18:51:46][Step 4/4] JavascriptError: javascript error: document unloaded while waiting for result
[18:51:46][Step 4/4] (Session info: chrome=44.0.2403.155)
[18:51:46][Step 4/4] (Driver info: chromedriver=2.15.322455 (rg5th540dac8d0c453355d3d922c91ads1231),platform=Mac OS X 10.10.4 x86_64)
[18:51:46][Step 4/4] at Array.forEach (native)
[18:51:46][Step 4/4] From: Task: Run it("should create new job listing") in control flow
[18:51:46][Step 4/4] at Array.forEach (native)
[18:51:46][Step 4/4] From asynchronous test:
[18:51:46][Step 4/4] Error
[18:51:46][Step 4/4] at Suite.<anonymous> (/client/test/e2e/vacancies/vacancies.create.specs.js:67:7)
[18:51:46][Step 4/4] at Object.<anonymous> (/client/test/e2e/vacancies/vacancies.create.specs.js:17:3)
日志指向的行是测试的起始行。
下面是代码片段:67 it('should create new job listing', function () {
68 //Login As Admin To Access Vacancies Feature
69 loginAsManager();
.
. //load manager's dashboard list page
. dashboardPage = new DashboardPage();
. dashboardPage.vacanciesTab.click();
.
. //load vacancies list page
. var vacanciesUrl = browser.baseUrl + '#/vacancies';
. browser.waitForAngular();
. expect(browser.getCurrentUrl()).toEqual(vacanciesUrl);
. vacanciesPage = new VacanciesPage();
. vacanciesPage.addVacancyButton.click();
.
.
我认为这里的意思是在expect完成它的断言之前,目标页面已不可用或已卸载。
所以,在每个页面导航之后,我尝试添加"browser.waitForAngular()"。但这并没有帮助这个断言通过。
奇怪的是同样的测试在Ubuntu14.04平台上通过了但在Mac OS X 10.10.4 x86_64
它不会每次都在同一个测试中失败。这总是一个不同的测试
任何建议都会很有帮助。
谢谢。
我可以通过让浏览器在每次更改URL后休眠几秒钟来解决这个问题。
下面是代码片段:67 it('should create new job listing', function () {
68 //Login As Admin To Access Vacancies Feature
69 loginAsManager();
.
. //load manager's dashboard list page
. dashboardPage = new DashboardPage();
. dashboardPage.vacanciesTab.click();
.
. //load vacancies list page
. var vacanciesUrl = browser.baseUrl + '#/vacancies';
. browser.sleep(2000);
. expect(browser.getCurrentUrl()).toEqual(vacanciesUrl);
. vacanciesPage = new VacanciesPage();
. vacanciesPage.addVacancyButton.click();
.
.
我认为这不是解决这个问题的好办法。
如果有人有更好的解决办法,我会很高兴听到的。
干杯Gaurav
我建议看一下量角器中的ExpectedConditions。它们在这种情况下很有帮助。如果您查看示例,这可能会帮助您找到问题的替代解决方案。我目前正在使用这种模式重写许多测试,因为在我们的CI构建服务器上经常出现间歇性的测试失败。
相关文章:
- Ajax请求文档就绪会导致jquery加载缓慢
- BrowserId登录请求在文档加载时被调用
- 在jquery文档准备好之前加载Modernizr
- 将文档上载到Web API
- JS触发器值检查在文档加载后添加到页面的元素在加载时更改AND
- 加载的XML文档为null(Javascript)
- 在文档加载Tampermonkey时单击事件激发
- 用javascript从窗口获取文档,同时检查文档是否已加载
- 将变量从服务器上的外部文件加载到 HTML 文档中
- javascript可以在加载完整文档之前打开辅助窗口吗?
- 为什么不是'我的函数未按预期在文档加载时运行
- Firefox加载项:从选项卡获取文档
- 无法使用JavaScript在网页上加载XML文档
- 如何防止加载外部资源,同时防止“在'文档'上执行'写入'失败”错误
- 如何将特定的javascript文件或javascript代码加载到HTML文档中
- 如何在文本区加载word文档的内容
- 正在将图像加载到文档中.正文背景
- 如何生成一个唯一的链接,该链接将加载一个会话,其中包含客户端可用的某些文档
- Focusout 仅在文档加载时触发,并且不会再次触发
- 同时加载 iframe 并重置文档位置