Мульти окно selenium

У меня есть бот который авторизуется на сайте и выполняет на нем определенные действия, теперь мне нужно сделать так чтобы бот это делал с 50 аккаунтов одновременно, (Как это реализовать я понимаю), но вот как открыть 50 процессов при помощи selenium - нет


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

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

Открыть одновременно можно через pytest Но обратите внимание на ресурсы Вашего компьютера, Ваш компьютер сможет открыть 50 браузерных вкладок одновременно без экрана смерти?) Если нет, попробуйте потом в режиме --headless

Если ближе к делу, то Вам понадобится не просто pytest Вам нужно установить pytest

pip install pytest

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

pip install pytest-xdist 

Теперь когда у Вас всё установлено, необходимо будет прописать фикстуру параметризации над функцией, для большей информации советую ознакомиться тут

После того как Вы ознакомились с построением и написанием pytest, Вам нужно будет воспользоваться терминалом в Вашем IDE, либо обычным. Команда следующая:

pytest -n 3 (Где 3 это количество одновременных запусков)

Также Вам нужно будет обратить внимание в какой директории Вы находитесь на данный момент. В IDE удобно: ПКМ по файлу Вашего проекта --> Open In --> Terminal. Тем самым Вы окажетесь в Вашем проекте, и пропишите команду которая прогонит все функции в этом файле. Если надо только одну то после pytest -n 3 укажите путь до конкретной функции, к примеру:

pytest -n 3 .\tests\test_my_func.py

Если же Ваша функция в классе, тогда указываем сначала класс, потом метод(функцию) внутри этого класса, например:

pytest -n 3 .\tests\TestMyClass::test_my_func.py

Обращение к методам класса осуществляется двойным двоеточием.

Также обратите внимание, при использовании pytest, функцию которую Вы хотите запустить должна называться с test_, в противном случае он ее просто не увидит. Аналогично с классами. TestMyClass

И в принципе всё. Запускайте Вашу функцию на здоровье.

→ Ссылка