GitHub per getCurrentUrl
webdriver.WebDriver.prototype.getCurrentUrl = function() {
return this.schedule(
new webdriver.Command(webdriver.CommandName.GET_CURRENT_URL),
'WebDriver.getCurrentUrl()');
};
Utilizza le schedule()
->command()
wrapper per risolvere una promessa da WebDriver.getCurrentUrl()
GitHub fonte per Protractor.getLocationAbsUrl
functions.getLocationAbsUrl = function(selector) {
var el = document.querySelector(selector);
if (angular.getTestability) {
return angular.getTestability(el).
getLocation();
}
return angular.element(el).injector().get('$location').absUrl();
};
semplicemente un wrapper per $location.absUrl()
con un'attesa per le AngularJS libreria per caricare
URL attuale vs assoluto URL
determinato URL app:
http://www.example.com/home/index.html#/Home
L'URL corrente si risolve in m minerale di un URI
/home/index.html#/Home
URL assoluto decide di
http://www.example.com/home/index.html#/Home
Quando si desidera utilizzare URL assoluto: Si desidera utilizzare l'URL di dominio completo, piuttosto che la navigazione locale (URI), si desidera l'URL assoluto.
Se l'applicazione effettua le chiamate per la URL corrente, i test devono chiamare getCurrentUrl()
.
Se il codice invia richieste per URL assoluto, i test devono chiamare getLocationAbsUrl()
.
fonte
2015-06-20 21:43:33
'getLocationAbsUrl' è sicuramente specifico per goniometro (/ angolare), utilizza' $ posizione' sull'elemento angolare: https: // github.com/angular/goniometro/blob/master/lib/clientsidescripts.js # L617. Dove come, come dici, 'getCurrentUrl()' è selenio/webdriver. Non rispondendo perché non so quando ognuno è preferito - anche interessato a una risposta. – DRobinson
Non conosco la risposta, ma non ho mai sentito il bisogno di usare nessuno dei due. Faccio sempre asserzioni e attendo localizzatori specifici (elementi) piuttosto che url, perché è una situazione comune avere un cambio di URL prima che una parte specifica della tua pagina venga inserita nel dom. Quindi trovo più stabile aspettare i cambiamenti nella dom piuttosto che i cambiamenti nell'URL. – Dziamid
@Dziamid usiamo le attese esplicite per aspettare anche le modifiche nel DOM, che rende i test più affidabili e aiuta ad evitare sorprese. Ma ci sono casi in cui anche la posizione dell'URL deve essere controllata. Grazie. – alecxe