Clicky

Пример автоматизации с Selenium

Обновлено 2 weeks ago от Yelena

Статьи по теме

Этот простой скрипт Python использует библиотеку Selenium для работы с профилем в Multilogin X.

Принцип работы

Ниже описаны действия с драйвером, которые выполняет скрипт из этой статьи.

  1. Войти в систему, используя Multilogin X API.
  2. Запустить профиль с Selenium в качестве выбранного типа автоматизации.
  3. Получить порт, который использует запущенный профиль.
  4. Запустить драйвер Selenium на localhost, используя полученный порт.
  5. Управлять браузером с помощью драйвера.
  6. Закрыть профиль через 5 секунд.

Запуск скрипта

Выполните эти шаги, чтобы запустить скрипт для Mimic.

Проверьте подключение к агенту: он отвечает за запуск профилей.
  1. Установите следующие библиотеки Python:
    1. requests.
    2. selenium.
  2. Укажите свои значения в скрипте:
    1. USERNAME: адрес электронной почты вашего аккаунта Multilogin X.
    2. PASSWORD: пароль вашего аккаунта Multilogin X (шифрование MD5 не требуется).
    3. FOLDER_ID, PROFILE_ID: эти значения можно получить с помощью DevTools или Postman.
import requests
import hashlib
import time

from selenium import webdriver
from selenium.webdriver.chromium.options import ChromiumOptions

MLX_BASE = "https://api.multilogin.com"
MLX_LAUNCHER = "https://launcher.mlx.yt:45001/api/v1"
LOCALHOST = "http://127.0.0.1"
HEADERS = {
'Accept': 'application/json',
'Content-Type': 'application/json'
}

#TODO: Insert your account information in both variables below.
USERNAME = ""
PASSWORD = ""

#TODO: Insert the Folder ID and the Profile ID below
FOLDER_ID = ""
PROFILE_ID = ""

def signin() -> str:

payload = {
'email': USERNAME,
'password': hashlib.md5(PASSWORD.encode()).hexdigest()
}

r = requests.post(f'{MLX_BASE}/user/signin', json=payload)

if(r.status_code != 200):
print(f'\nError during login: {r.text}\n')

response = r.json()['data']

token = response['token']

return token

def start_profile() -> webdriver:

r = requests.get(f'{MLX_LAUNCHER}/profile/f/{FOLDER_ID}/p/{PROFILE_ID}/start?automation_type=selenium', headers=HEADERS)

response = r.json()

if(r.status_code != 200):
print(f'\nError while starting profile: {r.text}\n')
else:
print(f'\nProfile {PROFILE_ID} started.\n')

selenium_port = response.get('status').get('message')
driver = webdriver.Remote(command_executor=f'{LOCALHOST}:{selenium_port}', options=ChromiumOptions())

return driver

def stop_profile() -> None:
r = requests.get(f'{MLX_LAUNCHER}/profile/stop/p/{PROFILE_ID}', headers=HEADERS)

if(r.status_code != 200):
print(f'\nError while stopping profile: {r.text}\n')
else:
print(f'\nProfile {PROFILE_ID} stopped.\n')


token = signin()
HEADERS.update({"Authorization": f'Bearer {token}'})

driver = start_profile()
driver.get('https://multilogin.com/')
time.sleep(5)
stop_profile()



Наши новости, полезные статьи и советы вы найдёте здесь


Вам удалось решить проблему?