Фокусировка на окно браузера при использовании Selenium

используется программа для автоматизации работы в нескольких браузерах гугл хром с использованием Selenium, столкнулись с проблемой, что при сворачивании браузера, действия в нем прекращаются, и программа автоматически перезагружает вкладку, для повторного выполнения кода, после чего браузер разворачивает свернутое окно, так же, у некоторых пользователей(примерно 50%), браузеры останавливают работу, даже если накладываются друг на друга.

Пробовал различные параметры запуска по типу: --disable-background-timer-throttle --disable-infobars --disable-popup-blocking --disable-features=CalculateNativeWinOcclusion --disable-backgrounding-occluded-windows --disable-notifications

В настройках самой windows, мы так и не нашли решение проблемы, хотя бы того, что у некоторых пользователей браузеры не работают, даже если поверх них, есть любое окно. Использование режима Headless к сожалению не возможно в нашей ситуации, единственное что частично помогло, это перемещение браузеров на координаты за пределами экрана, где они не мешают друг другу, но при этом, у тех же 50% пользователей, из за этого, при выполнении действий в браузерах частично блокируется работа клавиатуры, той есть, в момент перезагрузки браузера или обновлении страницы, пропадает курсор введения текста и ввод останавливается.


Ответы (1 шт):

Автор решения: eri

Для линукс

Используйте XNest или подобный сервер, запустите в нем отдельный оконный менеджер. Каждый селениум в своем дисплейном сервере.

Для виндовс сервер

Запустите сервер терминалов, создайте пользователей и откройте rdp сеансы, которые можно свернуть.

Для виндовс для рабочих станций

Поставьте виртуалку с линуксом и запустите там пачку сеансов с XVnc

Всё потому что

Клики и другие системные события передаются только в активную вкладку активного окна

→ Ссылка