Estoy probando un sitio web usando transportador y jazmín. Me gustaría saber la URL actual para verificar una prueba.
Yo he tratado
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); }); }); } ); }y estoy usando esta función de esta manera
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"); });Si solo desea verificar la URL actual, use browser.getCurrentUrl() :
expect(browser.getCurrentUrl()).toEqual("expectedUrl");Pero, si necesita esperar hasta que la URL coincida con un valor determinado, consulte la siguiente parte de la respuesta.
Aquí hay un código de trabajo basado en el ejemplo proporcionado por el autor de las Condiciones esperadas :
var urlChanged = function(url) { return function () { return browser.getCurrentUrl().then(function(actualUrl) { return url != actualUrl; }); }; };Uso:
element(by.linkText('Acceder')).click(); browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000);Desde Protractor 4.0.0 , ahora puede usar las condiciones esperadas para saber cuándo cambió su URL.
const EC = protractor.ExpectedConditions; browser.wait(EC.urlContains('my-url'), 5000);La respuesta que encontré proviene de este , no tengo créditos reales para ello. Pero por si acaso ayuda.