Невозможно переключить фокус на дочернее окно в браузере Safari с помощью Protractor - PullRequest
0 голосов
/ 19 апреля 2019

Невозможно переключить фокус на дочернее окно в браузере Safari версии 11 и 12

Версия ОС: macOS High Sierra и macOS Mojave

Ниже приведен фрагмент кода, который я пробовал.

exports.switchWindowFocus = function (url) {

    var self = this;

     browser.getAllWindowHandles().then(function (handles) {

        browser.wait(self.windowCount(2), 10000);

         browser.switchTo().window(handles[1]).then(function(){

             expect(browser.getCurrentUrl()).toEqual(url);
         })
    });
};

Тем не менее фокус остается на главном окне, а не переключается на дочернее окно.

Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 19 апреля 2019

Я был удивлен, увидев browser.wait(self.windowCount(2)) внутри browser.getAllWindowHandles(). Если вы получите все ручки, а его там еще не было, то ждать его потом не принесет много пользы. Кроме того, browser.wait, вероятно, должно быть обещано приковано к тому, что будет после. Может быть что-то вроде (не проверено):

exports.switchWindowFocus = function (url) {
  var self = this;
  browser.wait(self.windowCount(2), 10000).then(function() {
    browser.getAllWindowHandles().then(function (handles) {
      console.log(handles.length);
      browser.switchTo().window(handles[1]).then(function() {
        expect(browser.getCurrentUrl()).toEqual(url);
      })
    });
  });
};
...