обнаружение медленного закрытия окна python selenium

#python #selenium

#python #selenium

Вопрос:

Я использую простой скрипт для определения того, когда окно браузера selenium закрыто.

 from selenium import webdriver
from selenium.common.exceptions import WebDriverException
import time
       
driver = webdriver.Chrome()
driver.get("https://google.com")

while True:
    try:     
        driver.title
        print('ok')
    except WebDriverException:
        print('closed')          
        break
    time.sleep(1)
  

Код работает как ожидалось, однако на компьютере Linux с selenium 1.25.9 и python 3.8.2 обнаружение закрытого окна происходит немедленно, в то время как на компьютере Windows 10 (selenium 1.25.8, python 3.8.5) требуется 10-15 секунд, чтобы обнаружить, что окно закрыто. Есть идеи, почему такая разница в скорости?

Комментарии:

1. Может быть, потому что это базовое исключение. Он должен пройти через каждое исключение, прежде чем достичь WebDriverException. Но я еще не понял, в чем разница. Исходный код пока не дает ответов..

2. Я так не думаю. Я просмотрел журналы и сравнил их. Я обнаружил, что в Windows chromedriver используется как своего рода мост между Chrome и selenium. Задержка вызвана тем, что chromedriver обнаруживает, что Crome недоступен, и ожидает несколько секунд, если он появится снова, в то время как в Linux такого понятия между chrome и selenium нет. Я не уверен, вызвана ли эта задержка тем, что selenium не завершает работу должным образом, или это поведение chromedriver по умолчанию. Я не нашел ничего в Интернете о том, как контролировать или уменьшать эту задержку.

3. Я пробовал тот же скрипт в Firefox, и он работает, как ожидалось, как в Windows, так и в Linux, но я не хочу его менять, поскольку вся моя предыдущая работа основана на Chrome…

4. Хорошо. Это понятно… хорошего дня! Вы можете ответить на свой собственный вопрос, чтобы закрыть этот поток

5. Ну, я знаю, что вызывает проблему, но я все еще не знаю, как это исправить.