今天,我一直在努力处理以下这些 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提出。

09-25 21:42