I am testing a website using protractor, and jasmine. I would like to know the current url in order to verify a test.
I have tried
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);
});
});
}
);
}
and I am using this function in this way
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");
});
Alecxe your answer was very helpful.
But couldn't you just code:
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.
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
If you want to just check the current URL, then use
browser.getCurrentUrl()
: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:
Usage: