Puppeteer自动化示例
使用 Puppeteer 自动化 Multilogin Mimic 浏览器配置文件:使用 automation_type=puppeteer 启动配置文件,从启动响应中获取自动化端口,然后将 Puppeteer 连接到该本地端口。
➡️ 保持 Multilogin 桌面应用运行 → 通过 API 启动浏览器配置文件 → 从响应中获取 data.port → 将 Puppeteer 连接到 http://127.0.0.1:<port>。
Puppeteer 支持 Mimic 浏览器配置文件。旧版 Stealthfox 配置文件不支持 Puppeteer。
开始自动化之前,请先查看以下资源:自动化脚本入门。
本指南介绍浏览器配置文件自动化。如需自动化 Multilogin 云手机上的原生 Android 应用,请使用 ADB 或 Appium。
谁可以使用此脚本?
- 👨💻 账号所有者和团队成员
- 💰 Pro 10 及更高方案
连接方式
-
脚本使用
automation_type=puppeteer启动 Multilogin 浏览器配置文件 -
Multilogin 在
data.port中返回自动化端口 -
脚本生成
http://127.0.0.1:<port> -
puppeteer.connect()连接到已运行的 Multilogin 配置文件 - 之后,Puppeteer 即可打开页面并执行浏览器操作
开始之前
- 从官方网站下载Node.js并安装
- 确保Node.js和npm(Node 包管理器)已正确安装:
node -v
npm -v- 创建一个项目目录,然后运行此命令来初始化一个新的Node.js项目并创建一个
package.json文件:
npm init -y- 安装Puppeteer作为项目的依赖项:
npm install puppeteer- 安装Axios和MD5库:
npm install axios
npm install md5- 为以下变量赋值:
- 在以下行中将
https://multilogin.com/替换为您需要的网站:
await page.goto("https://multilogin.com/");运行脚本
- 启动该应用,因为它可以启动个人资料页面
- 使用与当前 Mimic 内核所使用的 Chromium 版本兼容的 Puppeteer 版本。如果内核更新后 Puppeteer 无法连接,请先检查当前 Mimic 内核与 Puppeteer 的兼容性,再修改脚本。
- 使用自动化代码运行
.js文件
脚本示例
const puppeteer = require('puppeteer');
const md5 = require('md5');
const axios = require('axios');
const HEADERS = {
"Content-Type": "application/json",
"Accept": "application/json",
};
const acc_info = {
// Insert your account information in both variables below
"email": "",
"password": md5("")
};
async function get_token() {
const signIn_URL = "https://api.multilogin.com/user/signin";
try {
const response = await axios.post(signIn_URL, acc_info, {
headers: HEADERS
});
return response.data.data.token;
} catch (error) {
console.log(error.message);
console.log("Response data:", error.response.data);
return false;
}
};
// Insert the Folder ID and the Profile ID below
const folder_id = "";
const profile_id = "";
async function start_browserProfile() {
const token = await get_token();
if (!token) return;
// Update HEADERS with bearer token retrived from the get_token function
HEADERS.Authorization = 'Bearer ' + token;
// Launch a profile defining "Puppeteer" as automation type
const profileLaunch_URL = `https://launcher.mlx.yt:45001/api/v2/profile/f/${folder_id}/p/${profile_id}/start?automation_type=puppeteer&headless_mode=false`;
try {
const response = await axios.get(profileLaunch_URL, {
headers: HEADERS
});
const browserURL = `http://127.0.0.1:${response.data.data.port}`;
// if you prefer to connect with browserWSEndpoint, try to get the webSocketDebuggerUrl by following request
// const {data : {webSocketDebuggerUrl}} = await axios.get(`${browserURL}/json/version`)
const browser = await puppeteer.connect({
browserURL: browserURL,
timeout: 10000
});
const page = await browser.newPage();
await page.goto("https://multilogin.com/");
await page.screenshot({
path: "example.png"
})
await page.close();
} catch (error) {
console.log("Error:", error.message);
if (error.response) {
console.log("Response data:", error.response.data);
}
}
};
start_browserProfile();预期结果:**Multilogin 启动所选 Mimic 浏览器配置文件,Puppeteer 连接到返回的自动化端口,打开目标网页,并将 example.png 保存到您的项目文件夹中。
故障排除
为什么 Puppeteer 无法连接到配置文件?
请检查:
- Multilogin 桌面应用正在运行
-
folder_id和profile_id正确 - 浏览器配置文件使用 Mimic
-
配置文件启动请求返回了有效的
data.port - 您的 API 令牌有效
- 您的 Puppeteer 版本与当前 Mimic 内核兼容
为什么 Puppeteer 打开了另一个浏览器?
请确保脚本使用 puppeteer.connect() 和 Multilogin 返回的端口,而不是启动单独的 Puppeteer 浏览器。