Ví dụ về tự động hóa Selenium
Bài viết này được dịch tự động từ tiếng Anh. Chúng tôi sẽ hiệu đính và hoàn thiện nó sớm!
Sử dụng script Python với Selenium này để tự động hóa hồ sơ trình duyệt trong Multilogin. Script khởi động hồ sơ, kết nối Selenium với trình duyệt đang chạy, mở trang web và dừng hồ sơ sau 5 giây.
➡️ Trước khi bắt đầu, hãy tạo token tự động hóa Multilogin và thêm token vào script cùng với ID thư mục và ID hồ sơ. Bạn cũng cần mở ứng dụng máy tính để bàn Multilogin để khởi động hồ sơ.
Tập lệnh tự động hóa đơn giản này trong Python sử dụng thư viện Selenium để thao tác hồ sơ trong Multilogin Nó thực hiện các hành động sau:
- Thêm token tự động hóa của bạn vào yêu cầu gửi đến endpoint API.
- Bắt đầu cấu hình xác định Selenium là loại tự động hóa được chọn
- Truy xuất cổng được sử dụng bởi hồ sơ đang chạy
- Khởi động trình điều khiển Selenium trên máy chủ cục bộ bằng cách sử dụng cổng đã lấy được
- Sử dụng trình điều khiển để điều khiển các hành động của trình duyệt
- Dừng hồ sơ trong 5 giây
Ví dụ này đề cập đến tự động hóa hồ sơ trình duyệt. Để tự động hóa ứng dụng Android gốc trên điện thoại đám mây, hãy sử dụng ADB hoặc Appium thay vào đó.
Ai có thể sử dụng script này?
- 👨💻 Chủ tài khoản và thành viên trong nhóm
- 💰 Các gói Pro 10 và cao hơn
Trước khi bạn bắt đầu
- Cài đặt các thư viện Python sau:
- yêu cầu
- selen
- Chèn các giá trị của bạn vào các biến bên dưới trong tập lệnh:
Cần profile ID? Bạn có thể sao chép trực tiếp từ giao diện Multilogin. Tìm hiểu cách thực hiện: Cách sao chép ID hồ sơ trong Multilogin
Chạy tập lệnh
- Đảm bảo ứng dụng được khởi chạy vì nó giúp khởi chạy hồ sơ dễ dàng
- Theo mặc định, tập lệnh bên dưới hoạt động với Mimic . Để sử dụng cho Stealthfox, hãy thay
options=ChromiumOptions()bằngoptions=Options()trong dòng sau:driver = webdriver.Remote(command_executor=f'{LOCALHOST}:{selenium_port}', options=ChromiumOptions()) - Chạy tệp
.pyvới mã tự động hóa của bạn
Ví dụ về kịch bản
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()Kiểm tra xem script đã hoạt động hay chưa
Nếu script chạy thành công, Multilogin bắt đầu hồ sơ trình duyệt, Selenium mở trang web Multilogin, và hồ sơ dừng sau năm giây.
Khắc phục sự cố
Hồ sơ không khởi động
- Đảm bảo rằng ứng dụng máy tính để bàn Multilogin đang mở
- Kiểm tra thư mục ID và hồ sơ ID
Selenium không thể kết nối
- Kiểm tra rằng bạn đang sử dụng
ChromiumOptions()cho Mimic hoặcOptions()cho Stealthfox
Script dừng trong quá trình đăng nhập
- Kiểm tra xem API token của bạn có hợp lệ và chưa hết hạn hay không.