Подтвердить что ты не робот

Как я могу получить текущий url с помощью транспортира?

Я тестирую сайт с помощью транспортира и жасмина. Я хотел бы узнать текущий URL-адрес, чтобы проверить тест.

Я пробовал

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);
                });
            });
        }
    );
}

и я использую эту функцию таким образом

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");
});
4b9b3361

Ответ 1

Если вы хотите просто проверить текущий URL, то используйте browser.getCurrentUrl():

expect(browser.getCurrentUrl()).toEqual("expectedUrl");

Но, если вам нужно подождать, пока URL не совпадет с определенным значением, смотрите следующую часть ответа.


Вот рабочий код, основанный на примере, представленном автором ожидаемых условий:

var urlChanged = function(url) {
  return function () {
    return browser.getCurrentUrl().then(function(actualUrl) {
      return url != actualUrl;
    });
  };
};

Использование:

element(by.linkText('Acceder')).click();
browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000); 

Ответ 2

Alecxe ваш ответ был очень полезным.

Но вы не могли бы просто закодировать:

 expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein');

И если это не удастся, то вы знаете, что идете в неправильное место.

Ответ 3

Так как Protractor 4.0.0, вы можете теперь использовать ожидаемые условия, чтобы знать, когда ваш URL изменился.

const EC = protractor.ExpectedConditions;
browser.wait(EC.urlContains('my-url'), 5000);

Как я узнал от этого, у меня нет реальных кредитов. Но на всякий случай это поможет.

Прототип-общий просмотр URL-адреса для изменения