今天,我一直在努力处理以下这些量角器代码行:
element(by.linkText("People")).click(); browser.waitForAngular(); var url = browser.getCurrentUrl(); ...
getCurrentUrl放在waitForAngular()语句后似乎总是失败。
getCurrentUrl
waitForAngular()
错误输出太模糊:
UnknownError:JavaScript错误:等待结果时卸载文档
那么,单击超链接并检查新URL的正确方法是什么?
这是我的测试:
如果我getCurrentUrl()在点击链接之前,
getCurrentUrl()
it('can visit people page', function () { var url = browser.getCurrentUrl(); element(by.linkText("People")).click(); expect(true).toBe(true); });
测试将通过。
如果我getCurrentUrl()点击链接后,
it('can visit people page', function () { var url = browser.getCurrentUrl(); element(by.linkText("People")).click(); expect(true).toBe(true); url = browser.getCurrentUrl(); });
UnknownError上面的输出在Protractor中引发错误。什么地方出了错?
UnknownError
不用waitForAngular()调用,而是 等待URL更改 :
browser.wait(function() { return browser.getCurrentUrl().then(function(url) { return /index/.test(url); }); }, 10000, "URL hasn't changed");
最初由@juliemr在UnknownError上建议:javascript错误:等待result时文档被卸载。