Javascript 如何使用量角器获取当前url?

Javascript 如何使用量角器获取当前url?,javascript,angularjs,url,testing,protractor,Javascript,Angularjs,Url,Testing,Protractor,我正在使用量角器和jasmine测试一个网站。我想知道当前的url,以便验证测试 我试过了 function waitForUrlToChangeTo(urlRegex) { var currentUrl; return browser.getCurrentUrl().then(function storeCurrentUrl(url) { currentUrl = url; } ).then(function waitForUr

我正在使用量角器和jasmine测试一个网站。我想知道当前的url,以便验证测试

我试过了

function waitForUrlToChangeTo(urlRegex) {
    var currentUrl;

    return browser.getCurrentUrl().then(function storeCurrentUrl(url) {
            currentUrl = url;
        }
    ).then(function waitForUrlToChangeTo() {
            return browser.wait(function waitForUrlToChangeTo() {
                return browser.getCurrentUrl().then(function compareCurrentUrl(url) {
                    return urlRegex.test(url);
                });
            });
        }
    );
}
我是这样使用这个函数的

it('should log', function() {
    //element(by.model('user.username')).sendKeys('asd');
    //element(by.model('user.password')).sendKeys('asd');
    element(by.linkText('Acceder')).click();
    waitForUrlToChangeTo("http://localhost:9000/#/solicitudes");
});

如果只想检查当前URL,请使用:

但是,如果您需要等待URL匹配某个值,请参阅答案的下一部分


以下是一个工作代码,该代码基于本手册作者提供的示例:

用法:

element(by.linkText('Acceder')).click();
browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000); 
你的回答很有帮助

但你就不能编写代码:

 expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein');
如果失败了,那么你就知道你去错了地方。

因为你现在可以使用预期的条件来知道你的url什么时候改变了

const EC = protractor.ExpectedConditions;
browser.wait(EC.urlContains('my-url'), 5000);
我找到的asnwer来自,我没有真正的学分。但只是以防万一


我认为这样做的目的是等待URL匹配某个值,而不仅仅是在给定的时间点获取值。这个答案+1。问题是“如何使用量角器获取当前url?”。这是谷歌的第一个结果。我认为这个答案更有用,即使它不适用于OP。这是正确的答案,也是检查URL更可靠的方法。
 expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein');
const EC = protractor.ExpectedConditions;
browser.wait(EC.urlContains('my-url'), 5000);