Многопоточность Python Selenium, «отдельный экземпляр WebDriver» ⇐ Python
Многопоточность Python Selenium, «отдельный экземпляр WebDriver»
Я не понимаю, что они подразумевают под "отдельным экземпляром WebDriver", чтобы сделать его потокобезопасным. Означает ли это, что для каждого потока в моем коде я буду использовать разные веб-драйверы?
Например, если у меня есть 3 потока, это означает, что мне придется добавить в проект 3 разных веб-диска, чтобы использовать каждый из них отдельно, это правда?
Вот что люди говорят о потокобезопасности, и я не понимаю, почему:
импортировать потоки из веб-драйвера импорта селена защита thread_function(): # Инициализируем новый экземпляр WebDriver для этого потока драйвер = вебдрайвер.Chrome() # Выполните действия с этим экземпляром WebDriver driver.get("https://www.example.com") # ... # Закройте экземпляр WebDriver, когда закончите драйвер.выйти() # Создайте несколько потоков, каждый со своим WebDriver thread1 = threading.Thread(target=thread_function) thread2 = threading.Thread(target=thread_function) # Запускаем потоки поток1.start() поток2.start() # Подождем завершения потоков поток1.join() поток2.join() и вот что я пытаюсь сделать, правильно ли я делаю?
импортировать потоки из веб-драйвера импорта селена из selenium.webdriver.common.keys импортировать ключи # Определим функцию для первого потока защита thread_one(): # Инициализируем экземпляр WebDriver для первого потока драйвер1 = веб-драйвер.Chrome() # Перейдите на веб-сайт и взаимодействуйте с ним driver1.get("https://www.example.com") search_box = driver1.find_element_by_name("q") search_box.send_keys("Пример") search_box.send_keys(Ключи.ВОЗВРАТ) # Закрываем браузер для первого потока driver1.quit() # Определим функцию для второго потока защита thread_two(): # Инициализируем экземпляр WebDriver для второго потока драйвер2 = веб-драйвер.Chrome() # Перейдите на другой веб-сайт и взаимодействуйте с ним driver2.get("https://www.example.org") ссылка = driver2.find_element_by_link_text("Ссылка") ссылка.клик() # Закрываем браузер для второго потока driver2.quit() # Создаем два потока thread1 = threading.Thread(target=thread_one) thread2 = threading.Thread(target=thread_two) # Запускаем оба потока поток1.start() поток2.start() # Подождем завершения обоих потоков поток1.join() поток2.join() print("Оба потока завершены.") Как убедиться, что мой веб-диск является потокобезопасным
Я не понимаю, что они подразумевают под "отдельным экземпляром WebDriver", чтобы сделать его потокобезопасным. Означает ли это, что для каждого потока в моем коде я буду использовать разные веб-драйверы?
Например, если у меня есть 3 потока, это означает, что мне придется добавить в проект 3 разных веб-диска, чтобы использовать каждый из них отдельно, это правда?
Вот что люди говорят о потокобезопасности, и я не понимаю, почему:
импортировать потоки из веб-драйвера импорта селена защита thread_function(): # Инициализируем новый экземпляр WebDriver для этого потока драйвер = вебдрайвер.Chrome() # Выполните действия с этим экземпляром WebDriver driver.get("https://www.example.com") # ... # Закройте экземпляр WebDriver, когда закончите драйвер.выйти() # Создайте несколько потоков, каждый со своим WebDriver thread1 = threading.Thread(target=thread_function) thread2 = threading.Thread(target=thread_function) # Запускаем потоки поток1.start() поток2.start() # Подождем завершения потоков поток1.join() поток2.join() и вот что я пытаюсь сделать, правильно ли я делаю?
импортировать потоки из веб-драйвера импорта селена из selenium.webdriver.common.keys импортировать ключи # Определим функцию для первого потока защита thread_one(): # Инициализируем экземпляр WebDriver для первого потока драйвер1 = веб-драйвер.Chrome() # Перейдите на веб-сайт и взаимодействуйте с ним driver1.get("https://www.example.com") search_box = driver1.find_element_by_name("q") search_box.send_keys("Пример") search_box.send_keys(Ключи.ВОЗВРАТ) # Закрываем браузер для первого потока driver1.quit() # Определим функцию для второго потока защита thread_two(): # Инициализируем экземпляр WebDriver для второго потока драйвер2 = веб-драйвер.Chrome() # Перейдите на другой веб-сайт и взаимодействуйте с ним driver2.get("https://www.example.org") ссылка = driver2.find_element_by_link_text("Ссылка") ссылка.клик() # Закрываем браузер для второго потока driver2.quit() # Создаем два потока thread1 = threading.Thread(target=thread_one) thread2 = threading.Thread(target=thread_two) # Запускаем оба потока поток1.start() поток2.start() # Подождем завершения обоих потоков поток1.join() поток2.join() print("Оба потока завершены.") Как убедиться, что мой веб-диск является потокобезопасным
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение