Module de démarrage : Chrome + Relay + Playwright
Architecture
Windows Chrome (--remote-debugging-port=9222)
↕ Relay2.exe (0.0.0.0:9255 → 127.0.0.1:9222)
Adresse IP Windows (172.24.48.1:9255)
↕ WSL chrome_relay.py (127.0.0.1:19223 → 172.24.48.1:9255)
↕ Playwright connect_over_cdp('http://127.0.0.1:19223')
Étape A : Démarrer Chrome (Windows)
# D'abord, tuer les processus Chrome existants
taskkill /F /IM chrome.exe
# Démarrer Chrome avec le port de débogage
cmd.exe /c start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" \
--remote-debugging-port=9222 \
--user-data-dir="C:\Users\[Votre nom d'utilisateur Windows]\Desktop\chrome-debug"
⚠️ Vous devez utiliser un --user-data-dir dédié (comme chrome-debug) ; le profil par défaut ne peut pas être lié au port 9222.
Étape B : Démarrer Relay2 (Windows)
Relay2.exe doit s'exécuter automatiquement au démarrage de Windows :
C:\Users\[Votre nom d'utilisateur Windows]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hermes-gateway.vbs
Pour un démarrage manuel : double-cliquez sur Relay2.exe.
Étape C : Démarrer le relais WSL
cd ~/.hermes/scripts && python3 chrome_relay.py &
Étape D : Vérifier la chaîne
# Vérifier le relais WSL
curl -s http://127.0.0.1:19223/json | head -5
# Doit renvoyer une liste JSON des onglets Chrome
Étape E : Connexion Playwright
from playwright.async_api import async_playwright
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp('http://127.0.0.1:19223')
pages = browser.contexts[0].pages
# Vérifier les onglets déjà ouverts
Vérification de la connexion
Connexion à Dianxiaomi (店小秘)
Naviguez vers Dianxiaomi → Vérifiez si vous êtes connecté (cherchez le nom d'utilisateur [Votre nom d'utilisateur Dianxiaomi] sur la page) :
document.body.innerText.includes('[Votre nom d'utilisateur Dianxiaomi]')
Si non connecté, utilisez la connexion par QR code : en haut à droite de Dianxiaomi → scanner le code.
Connexion à 1688
Vérifiez l'état de connexion à 1688 : ouvrez n'importe quelle page produit 1688 → regardez s'il y a un bouton "Connexion".
document.body.innerText.includes('Connexion')
Si non connecté, connectez-vous manuellement (le captcha de 1688 ne peut pas être automatisé).
Récupération en cas de panne
Règle impérative après une déconnexion de la passerelle
Erreur fatale : appeler directement browser_navigate créera un nouvel onglet, perdant les données déjà remplies.
Étapes correctes :
1. browser_cdp → Target.getTargets # Lister tous les onglets
2. Trouver la page d'édition Dianxiaomi (title="店小秘--编辑速卖通产品")
3. Runtime.evaluate pour lire l'état de la page (titre, hash, bodyText)
4. Confirmer quel onglet contient les données remplies
5. Target.closeTarget pour fermer les onglets vides/dupliqués
6. Target.activateTarget pour activer l'onglet correct
7. Maintenant browser_snapshot devrait afficher les données remplies
Toute la chaîne est en panne
# Côté WSL
pkill -f chrome_relay.py
cd ~/.hermes/scripts && python3 chrome_relay.py &
# Côté Windows (manuellement ou depuis WSL)
taskkill /F /IM chrome.exe
# Redémarrer Chrome (Étape A)
Auteur : SouthernSpark (南方星火) | Xiaohongshu @南方星火 SouthernSpark | Workflow expert en automatisation IA