получить URL-адрес новой страницы, когда она открывается после клика

Я пишу тест, который нажимает кнопку, открывает новую вкладку и направляет вас на новый веб-сайт. Я хочу вызвать значение этого веб-сайта, чтобы я мог проанализировать его после кода RFP в имени веб-страницы. Затем я открываю сайт декодера и использую его для декодирования, чтобы убедиться, что декодированное имя веб-страницы работает правильно.

Код, который я использую:

this.switchesToGetQuotePage = function() {
  browser.getAllWindowHandles().then(function(handles) {
    newWindowHandle = handles[1]; // this is your new window
    browser.switchTo().window(newWindowHandle).then(function() {
      getCurrentUrl.then(function(text) {
        console.log(text);
      });
    });
  });
};

Когда я вызываю функцию getCurrentUrl, она возвращает значение ниже:

data: ,


person Nicole Phillips    schedule 09.10.2015    source источник


Ответы (1)


Используйте транспортир, встроенный в getLocationAbsUrl(), чтобы получить URL-адрес текущей страницы, если он основан на angular. Вот как -

browser.getLocationAbsUrl().then(function(url){
    console.log(url);
});

Однако, если вы работаете с неугловой страницей, подождите, пока страница загрузится по мере изменения URL-адреса (через перенаправления), пока окончательная страница не будет доставлена ​​клиенту, а затем используйте getCurrentUrl() на странице. Вот как -

   var ele = $("ELEMENT_ON_NEW_PAGE"); //replace it with your element on the page
   browser.switchTo().window(newWindowHandle).then(function() {
      browser.wait(protractor.ExpectedConditions.visibilityOf(ele), 10000).then(function(){
        getCurrentUrl.then(function(text) {
          console.log(text);
        });
      });
    });

Надеюсь, поможет.

person Girish Sortur    schedule 09.10.2015