Exemplo de automação no Selenium
Use este script Python com Selenium para automatizar perfis de navegador no Multilogin. Ele inicia um perfil, conecta o Selenium ao navegador em execução, abre um site e para o perfil após 5 segundos.
➡️ Antes de começar, gere seu token de automação do Multilogin e adicione-o ao script junto com o ID da pasta e o ID do perfil. O aplicativo desktop do Multilogin também precisa estar em execução para iniciar o perfil.
Como funciona
Para manipular o driver, o script executa as ações abaixo.
- Adiciona seu token de automação à solicitação para o endpoint da API.
- Inicie o perfil definindo o Selenium como o tipo de automação selecionado
- Obtenha a porta sendo usada pelo perfil em execução
- Inicie um driver Selenium no localhost usando a porta recuperada
- Use este driver para manipular as ações do navegador
- Pare o perfil em 5 segundos
Para começar a automatizar, confira estes recursos primeiro: Primeiros passos na automação por scripts
Você também vai precisar de um token de automação: Como obter seu token de automação do Multilogin.
Este exemplo cobre a automação de perfis de navegador. Para automação de aplicativos nativos do Android em telefones em nuvem, use ADB ou Appium em vez disso.
Quem pode usar este script?
- 👨💻 Proprietários de contas e membros da equipe
- 💰 Planos Pro 10 e superiores
Antes de começar
- Inicie o aplicativo, pois ele possibilita a criação de perfis
- Instale as seguintes bibliotecas Python:
- requests
- selenium
- Insira seus valores nas variáveis abaixo no script:
Precisa do ID do perfil? Você pode copiá-lo diretamente da interface do Multilogin. Saiba como: Como copiar ID de perfil no Multilogin.
Execução do script
Por padrão, o script abaixo funciona para o Mimic. Para usá-lo no Stealthfox, substitua options=ChromiumOptions() por options=Options() na linha a seguir:
driver = webdriver.Remote(command_executor=f'{LOCALHOST}:{selenium_port}', options=ChromiumOptions())
Exemplo de script
import requests
import time
from selenium import webdriver
from selenium.webdriver.chromium.options import ChromiumOptions
from selenium.webdriver.firefox.options import Options
MLX_BASE = "https://api.multilogin.com"
MLX_LAUNCHER = "https://launcher.mlx.yt:45001/api/v1"
MLX_LAUNCHER_V2 = (
"https://launcher.mlx.yt:45001/api/v2" # recommended for launching profiles
)
LOCALHOST = "http://127.0.0.1"
HEADERS = {"Accept": "application/json", "Content-Type": "application/json"}
# TODO: Insert your token in the variable below
API_TOKEN = ""
# TODO: Insert the Folder ID and the Profile ID below
FOLDER_ID = ""
PROFILE_ID = ""
def start_profile() -> webdriver:
r = requests.get(
f"{MLX_LAUNCHER_V2}/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["data"]["port"]
driver = webdriver.Remote(
command_executor=f"{LOCALHOST}:{selenium_port}", options=ChromiumOptions()
)
# For Stealthfox profiles use: options=Options()
# For Mimic profiles use: 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 = API_TOKEN
HEADERS.update({"Authorization": f"Bearer {token}"})
driver = start_profile()
driver.get("https://multilogin.com/")
time.sleep(5)
stop_profile()Verifique se o script funcionou
Se o script for executado com sucesso, Multilogin inicia o perfil do navegador, Selenium abre o site Multilogin, e o perfil para após cinco segundos.
Solução de problemas
O perfil não inicia
- Certifique-se de que o aplicativo de desktop Multilogin esteja aberto
- Verifique a pasta ID e o perfil ID
Selenium não consegue se conectar
- Verifique se você usa
ChromiumOptions()para Mimic ouOptions()para Stealthfox
O script para durante o login
- Verifique se seu token da API é válido e não expirou.