#javascript #safari #protractor
#javascript #safari #транспортир
Вопрос:
Невозможно переключить фокус на дочернее окно в браузере 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:
Я был удивлен , увидев 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);
})
});
});
};