今天,我一直在努力处理以下这些 Protractor 代码行:
element(by.linkText("People")).click();
browser.waitForAngular();
var url = browser.getCurrentUrl();
...
放在
getCurrentUrl
语句之后,看来waitForAngular()
总是失败。错误输出太模糊:
那么,单击超链接并检查新URL的正确方法是什么?
这是我的测试:
如果我在点击链接之前使用
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 中引发错误。什么地方出了错? 最佳答案
等待URL更改,而不是waitForAngular()
调用:
browser.wait(function() {
return browser.getCurrentUrl().then(function(url) {
return /index/.test(url);
});
}, 10000, "URL hasn't changed");
最初由@juliemr在UnknownError: javascript error: document unloaded while waiting for result提出。