Как правильно использовать несколько веб-драйверов селена одновременно? - PullRequest
0 голосов
/ 08 июля 2019

Цель состоит в том, чтобы написать скрипт на python, который открывает определенный веб-сайт, заполняет некоторые входные данные и затем отправляет их. Это должно быть сделано с разными входами для одного и того же сайта одновременно.

Я пытался использовать потоки из потоков и некоторые другие вещи, но не могу заставить его работать одновременно.

from selenium import webdriver
import time
from threading import Thread


def test_function():
    driver = webdriver.Chrome()
    driver.get("https://www.google.com")
    time.sleep(3)


if __name__ =='__main__':
    Thread(target = test_function()).start()
    Thread(target = test_function()).start()

Таким образом, при выполнении этого кода цель состоит в том, чтобы одновременно открылись 2 окна Chrome, перейти в Google и затем подождать 3 секунды. Теперь все, что сделано, это то, что функция вызывается два раза последовательно.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Теперь все, что сделано, это то, что функция вызывается два раза последовательно.

Вы наблюдаете поведение, потому что вы вызываете test_function(), когда вы передаете его какцель.Вместо вызова функции просто присвойте вызываемое имя (test_function).

следующим образом:

Thread(target=test_function).start()
0 голосов
/ 08 июля 2019

Вам понадобится среда тестирования, такая как pytest, для параллельного выполнения тестов. Вот краткое руководство по настройке.

PythonWebdriverParallel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...