Exemplo de automação Puppeteer
Use o Puppeteer para automatizar um perfil de navegador Mimic do Multilogin: inicie o perfil com automation_type=puppeteer, obtenha a porta de automação na resposta de inicialização e conecte o Puppeteer a essa porta local.
➡️ Mantenha o aplicativo desktop do Multilogin em execução → inicie o perfil de navegador pela API → obtenha data.port na resposta → conecte o Puppeteer a http://127.0.0.1:<port>.
O Puppeteer funciona com perfis de navegador Mimic. Perfis Stealthfox legados não são compatíveis com o Puppeteer.
Para começar a automatizar, confira estes recursos primeiro: Primeiros passos na automação por scripts
Este guia aborda a automação de perfis de navegador. Para automatizar aplicativos Android nativos em telefones em nuvem do Multilogin, use ADB ou Appium.
Quem pode usar este script?
- 👨💻 Proprietários da conta e membros de equipe
- 💰 Planos Pro 10 ou superiores
Como funciona a conexão
-
O script inicia o perfil de navegador do Multilogin com
automation_type=puppeteer -
O Multilogin retorna a porta de automação em
data.port -
O script cria
http://127.0.0.1:<port> -
puppeteer.connect()se conecta ao perfil do Multilogin que já está em execução - Depois disso, o Puppeteer pode abrir páginas e executar ações no navegador
Antes de começar
- Baixe o Node.js do site oficial e instale-o
- Certifique-se de que o Node.js e o npm (Node Package Manager) estejam instalados corretamente:
node -v
npm -v- Crie um diretório de projeto e execute este comando para inicializar um novo projeto Node.js e criar um arquivo
package.json:
npm init -y- Instale Puppeteer como uma dependência para seu projeto:
npm install puppeteer- Instalar Axios e biblioteca MD5:
npm install axios
npm install md5- Insira seus valores nas variáveis abaixo no script:
- Substitua
https://multilogin.com/pelo site que você precisa na seguinte linha:
await page.goto("https://multilogin.com/");Precisa do ID do perfil? Você pode copiá-lo diretamente da interface do Multilogin. Saiba como: Como copiar ID de perfil no Multilogin.
Executando o script
- Certifique-se de que o aplicativo esteja aberto, pois isso possibilita a criação do perfil
- Use uma versão do Puppeteer compatível com a versão do Chromium usada pelo núcleo Mimic atual. Se o Puppeteer não conseguir se conectar após uma atualização do núcleo, verifique a compatibilidade entre o núcleo Mimic atual e o Puppeteer antes de alterar o script.
- Execute o arquivo
.jscom seu código de automaçãoCertifique-se de executar o código de automação na mesma pasta/projeto que o arquivo
package.json.
Exemplo de script
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();Resultado esperado: o Multilogin inicia o perfil de navegador Mimic selecionado, o Puppeteer se conecta à porta de automação retornada, abre a página de destino e salva example.png na pasta do seu projeto.
Solução de problemas
Por que o Puppeteer não consegue se conectar ao perfil?
Verifique se:
- O aplicativo desktop do Multilogin está em execução
-
folder_ideprofile_idestão corretos - O perfil de navegador usa Mimic
-
A solicitação de inicialização do perfil retornou um
data.portválido - Seu Token da API é válido
- Sua versão do Puppeteer é compatível com o núcleo Mimic atual
Por que o Puppeteer abre outro navegador?
Verifique se o script usa puppeteer.connect() com a porta retornada pelo Multilogin, em vez de iniciar um navegador separado pelo Puppeteer.