how can I get the current url using protractor? how can I get the current url using protractor? angularjs angularjs

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.

Protractor- Generic wait for URL to change