如何在量角器测试中使用browser.getCurrentUrl()?

Bla*_*ise 5 javascript selenium angularjs selenium-webdriver protractor

今天我一直在努力使用这些Protractor代码:

element(by.linkText("People")).click();
browser.waitForAngular();        
var url = browser.getCurrentUrl();
...
Run Code Online (Sandbox Code Playgroud)

getCurrentUrlwaitForAngular()声明之后放置似乎总是失败.

错误输出太模糊了:

UnknownError:javascript错误:在等待结果时卸载文档

那么,点击超链接并检查新网址的正确方法是什么?


这是我的测试:

如果我getCurrentUrl()点击链接之前,

it('can visit people page', function () {
    var url = browser.getCurrentUrl();
    element(by.linkText("People")).click();
    expect(true).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

测试将通过.

如果我getCurrentUrl()点击链接后,

it('can visit people page', function () {
    var url = browser.getCurrentUrl();
    element(by.linkText("People")).click();
    expect(true).toBe(true);
    url = browser.getCurrentUrl();
});
Run Code Online (Sandbox Code Playgroud)

使用UnknownError上面的输出在Protractor中抛出错误.什么地方出了错?

ale*_*cxe 10

而不是waitForAngular()调用,等待URL更改:

browser.wait(function() {
  return browser.getCurrentUrl().then(function(url) {
    return /index/.test(url);
  });
}, 10000, "URL hasn't changed"); 
Run Code Online (Sandbox Code Playgroud)

最初由@juliemr在UnknownError上建议:javascript错误:在等待结果时卸载文档.