#python #selenium #google-chrome #selenium-chromedriver #robotframework
#python #selenium #google-chrome #selenium-chromedriver #robotframework
Вопрос:
Я хочу проверить, появилось ли всплывающее окно печати с использованием Robot Framework.
Test Print Popup Appeared
Click Element class:print_button
Get Window Handles # 2 windows in normal mode, 1 window in headless
Select Window NEW
Page Should Contain Element //button[@class='print default']
Click Element class:cancel
Select Window MAIN
Если я не использую безголовый режим, тест в порядке.
Но в безголовом режиме это не удается.
СБОЙ: окно с последним индексом совпадает с текущим окном.
Есть ли какая-либо возможность работать с всплывающими окнами в безголовом режиме? Спасибо.
UPD. Как я вижу, серфинг по этой проблеме Chrome отключает всплывающие окна в безголовом режиме. Та же проблема возникает, когда я пытаюсь загрузить файлы: нормально в обычном режиме, СБОЙ в безголовом.
Я попытался запустить браузер с пользовательской опцией disable-popup-blocking
, но безуспешно, проблема остается.
Test Suit Setup
${options} = Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys,selenium.webdriver
Call Method ${options} add_argument headless
Call Method ${options} add_argument disable-popup-blocking
Create WebDriver Chrome chrome_options=${options}
Комментарии:
1. Можете ли вы
Get Window Handles
раньшеClick Element class:cancel
. Это дает представление о том, сколько окон существует.2. Помните, что при запуске в безголовом режиме это может быть быстрее, поэтому окно еще не готово. Попробуйте добавить задержку, чтобы увидеть, так ли это.
3. @supputuri Когда в обычном режиме открыто 2 окна: главное и всплывающее окно для печати. Когда в безголовом — только одно главное окно
4. @Helio Спасибо. На самом деле есть некоторая задержка, так что это не так
5. Прохладный. Всегда лучше использовать
Get Window Handles
, когда вы используете Headless, по крайней мере, сколько окон существует на момент, когда вы пытаетесь переключиться.