переход между вкладками (открыт pdf файл)

У меня на сайте есть ссылка. по нажатию на которую файл открывается в новой вкладке. и меня перекидывает на нее.
Как мне перейти обратно на первую вкладку?
browser.getAllWindowHandles().then(function(handles) {
browser.switchTo().window(handles[0]);
browser.driver.switchTo().window(handles[0]);
}
пробовал, не помогло. я остаюсь на этой же вкладке.
но я заметил такую штуку
если я пропишу browser.driver.close();
тогда закроется не та вкладка на которой я нахожусь (pdf файл), а первая вкладка(на которой я нажимал по ссылке).

что делать. не знаю.

Вкладка то открывается, а фокус теста остается в старой!!!

1 лайк

так как мне перекинуть фокус на вторую вкладку (pdf)

Зачем, ведь вопрос звучал так:

Ты и так в ней остался, пущай тест идет дальше.

1 лайк

проблема в том, что мне нужно перейти на вкладку PDF(куда меня и перекидывает). взять там url или titile. И вернуться обратно.и продолжить выполнение тестов.

Ну так бы и сказал :slight_smile:

 browser.getAllWindowHandles().then(function(handles) {
browser.switchTo().window(handles[1]);
}
... проверяем пдф вкладку
browser.driver.close();
browser.getAllWindowHandles().then(function(handles) {
browser.switchTo().window(handles[0]);
}
... вернулись к тестированию основной страницы
2 лайка

я так и писал

this.checkLinks = function () {
    var handles = [];
    var link;
    return browser.wait(function () {
      var deferred = protractor.promise.defer();
      browser.getAllWindowHandles().then(function(hdls) {
        deferred.fulfill(hdls.length == 2);
      });
      return deferred.promise;
    }, 20000).then(function() {
      browser.ignoreSynchronization = true;
      return browser.getAllWindowHandles();
    }).then(function (hdls) {
      handles = hdls;
      return browser.driver.switchTo().window(handles[1]);
    }).then(function() {
      return browser.getCurrentUrl();
    }).then(function(currentLink) {
      link = currentLink;
      return browser.driver.close();
    }).then(function() {
      return browser.driver.switchTo().window(handles[0]);
    }).then(function() {
      browser.ignoreSynchronization = false;
      return Promise.resolve(link);
    });
  };

Ну в javascript я не силен, основные принципы понимаю, вроде все правильно…

1 лайк

Я юзаю эту функцию много где.
например у меня есть ссылки на другие сайты. я нажимаю, меня так же перебрасывает на другую вкладку. берется ЮРЛ и перебрасывает на первоначальную вкладку все работает. А с PDF или другими файлами, которые может открыть Chrome он не работает.

Как я понимаю, эта вкладка как-бы является плаггином, поэтому и не учитывается в списке вкладок…

вот и я так думаю(
беда печаль

https://www.google.com/search?q=facepalm+icon
а страница доступна для тестирования ?

Когда открывается новая вкладка то сколько открытых окон возвращается методом getAllWindowHandles(); ?

нельзя ли у через комбинацию клавиш и мыши закрыть новую вкладку
в крайнем случае можно через autoit сделать

Так если нужно просто взять урл для продолжения теста - почему бы просто не выдернуть его из аттрибутов линки, которая открывает тот самый ПДФ, и его использовать в дальнейшем?