how can I get the current url using protractor?
If you want to just check the current URL, then use browser.getCurrentUrl()
:
expect(browser.getCurrentUrl()).toEqual("expectedUrl");
But, if you need to wait until URL matches a certain value, see the next part of the answer.
Here is a working code based on the example provided by the author of the Expected Conditions:
var urlChanged = function(url) { return function () { return browser.getCurrentUrl().then(function(actualUrl) { return url != actualUrl; }); };};
Usage:
element(by.linkText('Acceder')).click();browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000);
Alecxe your answer was very helpful.
But couldn't you just code:
expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein');
And if this fails, then you know you're going to the wrong place.
Since Protractor 4.0.0 you can now use expected conditions to know when your url changed.
const EC = protractor.ExpectedConditions;browser.wait(EC.urlContains('my-url'), 5000);
The asnwer I found comes from this one, I have no real credits for it. But just in case it help.