Как отключить всплывающие окна Chrome во время выполнения автоматизированных тестов Selenium на Python?

В настоящее время я пишу набор автоматизированного тестирования для большого Django-проекта для своей корпорации. Все шло хорошо, пока я не обновил Chrome (v.125.0.6422.142) и Chromedriver (v.125.0.6422.141). Когда я запустил тесты, из вертикального многоточия, открывающего меню Chrome, выскочила подсказка Chrome:

Stupid message messing up my tests

Я проверил с помощью пользовательского GPT (используя GPT-4), чтобы узнать, вызывает ли это потенциальные проблемы, и получил подтверждение (чего бы это ни стоило), что это всплывающее окно действительно вызывает помехи в моих тестах. Однако я не знаю, как от него избавиться.

Я просмотрел Stack OverFlow, GPT и Github Copilot, и внедрил следующие аргументы в свою установку:

def setUpClass(cls):
        super().setUpClass()

        if os.environ.get('ENVIRONMENT') == 'LOCAL':

            # Retrieve the path from an environment variable
            chromedriver_path = os.environ.get('CHROMEDRIVER_PATH')
            if not chromedriver_path:
                raise ValueError("The CHROMEDRIVER_PATH environment variable must be set.")
            chrome_service = Service(executable_path=chromedriver_path)
            
            # Option to run in headless mode
            if os.environ.get('HEADLESS') == 'True':    
                print("Running in headless mode.")
                chrome_options = Options()
                chrome_options.add_argument('--headless')
                chrome_options.add_argument('--enable-logging')
                cls.selenium = webdriver.Chrome(service=chrome_service, options=chrome_options)
            else:
                chrome_options = Options()
                chrome_options.add_argument('--disable-first-run-ui')
                chrome_options.add_argument('--no-first-run')
                chrome_options.add_argument('--disable-extensions')
                chrome_options.add_argument('--enable-logging')
                chrome_options.add_argument('--disable-popup-blocking')
                chrome_options.add_argument('--disable-notifications')
                chrome_options.add_argument('--disable-infobars')
                chrome_options.add_argument('--disable-blink-features=AutomationControlled')
                cls.selenium = webdriver.Chrome(service=chrome_service, options=chrome_options)
                cls.selenium.maximize_window()
                print("Running in headful mode")

Условные утверждения вызваны логикой реализации DevOps (мы - младшие разработчики в стартапе), и я обычно запускаю тесты в режиме "Headful Mode". Независимо от того, что я реализовал, всплывающее окно все равно появляется и мешает моим тестам. Даже простой выбор кнопки с XPATH не работает и постоянно вылетает или выбрасывает эту неясную ошибку, в которой я не смог найти ничего полезного, кроме потенциальной нестыковки между Chromedriver и Chrome:

[13860:24408:0604/071320.491:ERROR:interface_endpoint_client.cc(722)] Сообщение 0 отклонено интерфейсом blink.mojom.WidgetHost

Однако, учитывая версии ChromeDriver и Chrome, я твердо уверен, что именно это всплывающее окно является причиной моих проблем. Любая помощь будет оценена по достоинству!

Одним из способов предотвратить появление этого всплывающего окна является запуск в режиме инкогнито:

chrome_options.add_argument("--incognito")

Также эффективен гостевой режим:

chrome_options.add_argument("--guest")
Вернуться на верх