Démo en direct : Parlez à l'IA, gérez des scripts complets en une seule étape
Ce chapitre propose une démonstration complète et réelle du processus, de "l'énoncé d'un besoin en langage naturel" à "l'obtention d'un script prêt à l'emploi", avec des descriptions détaillées pour chaque étape.
Scénario de la démo
Contexte métier : Vous avez 20 comptes de vendeur Amazon et vous devez vérifier chaque jour le nombre de commandes en attente ("Pending") pour chaque compte, en les résumant dans un rapport Excel pour votre équipe.
Méthode traditionnelle : Se connecter manuellement à chaque compte un par un, enregistrer le nombre de commandes et remplir le tableau Excel. Cela prend environ 2 heures.
Utilisation de l'IA + Mbbrowser : Décrivez les besoins, l'IA génère le script và le script s'occupe du reste. Le temps total passé est de 15 minutes (configuration comprise).
Étape 1 : Préparation (5 minutes)
NOTE
En supposant que vous ayez terminé les configurations suivantes des chapitres précédents :
- ✅ Cursor ou Antigravity est installé.
- ✅ Le pack de règles Mbbrowser est chargé dans Cursor.
- ✅ L'ApiServer de Mbbrowser est démarré (
http://127.0.0.1:8186). - ✅ Vos comptes Amazon sont déjà connectés dans les environnements Mbbrowser (les Cookies sont enregistrés).
Préparer le fichier sessions.txt
Dans le dossier de votre projet, créez sessions.txt và indiquez tous les ID d'environnement trên lesquels vous souhaitez opérer :
a1b2c3d4e5f6789012345678901234ab
b2c3d4e5f67890123456789012345bcd
c3d4e5f678901234567890123456cde
... (un Session_ID par ligne, 20 lignes au total)Étape 2 : Saisie des besoins dans Cursor (30 secondes)
Appuyez trên Ctrl + L pour ouvrir le Chat de Cursor và entrez ce qui suit :
J'ai un fichier sessions.txt Mbbrowser avec 20 Session_ID de comptes, un par ligne.
Ces comptes sont déjà connectés à Amazon dans les environnements Mbbrowser.
Aide-moi à générer un script Python avec les fonctionnalités suivantes :
1. Lire tous les Session_ID à partir de sessions.txt.
2. Ouvrir par lots tous les environnements (jusqu'à 10 simultanément).
3. Une fois chaque environnement pris en charge par Playwright :
a. Attendre que la page se charge (les environnements restent généralement trên la dernière page fermée).
b. Naviguer vers https://www.amazon.com/gp/orders-v2/list (page de commande du vendeur Amazon).
c. Attendre l'apparition de l'élément .a-row.shipment (signalant le chargement de la liste de commandes).
d. Compter le nombre d'éléments .shipment-status-buyerPending trên la page (ce sont les commandes en attente "Pending").
e. Écrire les 8 premiers caractères du Session_ID + le nombre de commandes en attente dans les résultats.
4. Fermer tous les environnements une fois toutes les opérations terminées.
5. Enregistrer les résultats dans amazon_orders_[date du jour].xlsx,
Colonnes : Env ID (8 premiers caractères), Nombre de commandes en attente, Heure de vérification, État.
Enregistrer des captures d'écran dans un dossier errors/ si des exceptions surviennent và noter "Vérification échouée" dans le tableau de résultats.Étape 3 : L'IA génère le code (Environ 30 secondes)
Après avoir reçu la demande, l'IA de Cursor générera le code complet. Le résultat généré devrait ressembler à ceci :
"""
Script de vérification des commandes Mbbrowser + Amazon
Vérifie automatiquement le nombre de commandes en attente dans tous les environnements.
"""
import threading
import datetime
from pathlib import Path
from concurrent.futures import ThreadPoolExecutor, as_completed
import requests
import openpyxl
from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout
# ==============================
# Configuration (Modifier si besoin)
# ==============================
APISERVER = "http://127.0.0.1:8186"
SESSIONS_FILE = "sessions.txt"
MAX_WORKERS = 10 # Simultanéité maximale
ERRORS_DIR = Path("errors")
ERRORS_DIR.mkdir(exist_ok=True)
results_lock = threading.Lock()
results = []
# ==============================
# Wrapper APIServer
# ==============================
def start_env(session_id: str) -> dict | None:
try:
resp = requests.post(
f"{APISERVER}/api/v1/browser/start",
json={"Session_ID": [session_id], "isHeadless": False},
timeout=30
)
data = resp.json()
if data["code"] == 0:
return data["data"]["listid"][0]
except Exception as e:
print(f"[{session_id[:8]}] Erreur APIServer : {e}")
return None
def stop_env(session_id: str):
try:
requests.post(
f"{APISERVER}/api/v1/browser/stop",
json={"Session_ID": session_id}, # Stop attend généralement une chaîne (string)
timeout=10
)
except Exception:
pass
# ==============================
# Tâche pour un compte unique
# ==============================
def check_orders(session_id: str):
now = datetime.datetime.now().strftime("%H:%M:%S")
env_short = session_id[:8]
env_data = start_env(session_id)
if not env_data:
with results_lock:
results.append({
"env_id": env_short,
"pending_orders": "N/A",
"check_time": now,
"status": "Échec de l'ouverture de l'environnement"
})
return
port = env_data.get("browser_CDP_Port")
ws = f"ws://127.0.0.1:{port}/json/version"
pw = sync_playwright().start()
try:
browser = pw.chromium.connect_over_cdp(ws)
context = browser.contexts[0]
page = context.pages[0] if context.pages else context.new_page()
# Accéder à la page de commande Amazon
page.goto(
"https://www.amazon.com/gp/orders-v2/list",
wait_until="domcontentloaded",
timeout=20000
)
# Attendre que la liste de commandes soit chargée
page.wait_for_selector(".a-row.shipment", timeout=15000)
# Compter les commandes en attente
pending = page.locator(".shipment-status-buyerPending").count()
print(f"[{env_short}] ✅ Commandes en attente : {pending}")
with results_lock:
results.append({
"env_id": env_short,
"pending_orders": pending,
"check_time": now,
"status": "Succès"
})
browser.close()
except PWTimeout:
page.screenshot(path=str(ERRORS_DIR / f"{env_short}_timeout.png"))
with results_lock:
results.append({
"env_id": env_short,
"pending_orders": "N/A",
"check_time": now,
"status": "Délai d'attente dépassé (Timeout)"
})
except Exception as e:
try:
page.screenshot(path=str(ERRORS_DIR / f"{env_short}_error.png"))
except Exception:
pass
with results_lock:
results.append({
"env_id": env_short,
"pending_orders": "N/A",
"check_time": now,
"status": f"Exception : {str(e)[:50]}"
})
finally:
try:
pw.stop()
except Exception:
pass
stop_env(session_id)
# ==============================
# Programme principal
# ==============================
def main():
# Lire la liste des Session_ID
session_ids = [
line.strip()
for line in Path(SESSIONS_FILE).read_text().splitlines()
if line.strip()
]
print(f"📋 Total {len(session_ids)} comptes, Simultanéité maximale {MAX_WORKERS}")
# Exécution simultanée
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as pool:
futures = {pool.submit(check_orders, sid): sid for sid in session_ids}
for future in as_completed(futures):
sid = futures[future]
try:
future.result()
except Exception as e:
print(f"[{sid[:8]}] Exception non interceptée : {e}")
# Enregistrer le rapport Excel
today = datetime.date.today().strftime("%Y%m%d")
filename = f"amazon_orders_{today}.xlsx"
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Résultats de la vérification des commandes"
ws.append(["ID d'env (8 premiers)", "Commandes en attente", "Heure de vérification", "État"])
for r in results:
ws.append([r["env_id"], r["pending_orders"], r["check_time"], r["status"]])
wb.save(filename)
# Rapport de synthèse
success = sum(1 for r in results if r["status"] == "Succès")
print(f"\n{'='*40}")
print(f"✅ Succès : {success} / {len(results)}")
print(f"📄 Rapport enregistré dưới : {filename}")
print(f"❌ Captures d'écran d'erreur dans : le dossier errors/")
if __name__ == "__main__":
main()Étape 4 : Installer les dépendances và exécuter (2 minutes)
Après avoir généré le code, l'IA conseille généralement les dépendances à installer :
pip install playwright requests openpyxlEnsuite, exécutez directement :
python check_amazon_orders.pyKết quả attendu
📋 Total 20 comptes, Simultanéité maximale 10
[a1b2c3d4] ✅ Commandes en attente : 3
[b2c3d4e5] ✅ Commandes en attente : 0
[c3d4e5f6] ✅ Commandes en attente : 7
...
========================================
✅ Succès : 18 / 20
📄 Rapport enregistré sous : amazon_orders_20260226.xlsx
❌ Captures d'écran d'erreur dans : le dossier errors/Problèmes courants và conseils de correction IA
"Script s'exécute nhưng ne trouve pas les éléments de commande"
Sélectionnez le code concerné và appuyez trên Ctrl + K. Saisissez :
Le sélecteur pour la page Amazon a changé. Le sélecteur de ligne de commande actuel est .order-info, và le sélecteur d'état en attente est .order-status-pending. Veuillez mettre à jour le code."Ajouter une fonctionnalité : collecter également les détails de la commande"
Continuez la conversation dans le Chat :
À partir du code ci-dessus, après avoir collecté le nombre de commandes, veuillez également collecter l'ID de commande (.a-fixed-right-grid-col .a-link-normal) và la date d'expédition prévue (.expected-ship-date) pour chaque commande en attente, và notez-les dans l'Excel."Simultanéité trop rapide, provoquant un plantage ; besoin d'une limitation de débit"
Sur la base de ThreadPoolExecutor, ajoutez une attente de 3 secondes avant de démarrer chaque nouvelle tâche để éviter les problèmes de mémoire liés à l'ouverture simultanée d'un trop grand nombre d'environnements.Résumé : Meilleures pratiques pour l'écriture de scripts par IA
[ Préparation ]
1. Pack de règles injecté → L'IA comprend toutes les interfaces Mbbrowser.
2. Confirmer que l'APIServer là démarré.
[ Description des besoins ]
Plus c'est spécifique, mieux c'est :
✅ "Visiter https://xxx, attendre l'élément #main-content, cliquer trên .order-btn, attendre la fenêtre contextuelle de succès."
❌ "Aide-moi à gérer les commandes."
[ Génération ]
Généralement, 80 % là utilisable immédiatement. Corrigez les problèmes mineurs via une discussion de suivi.
[ Optimisation itérative ]
"Ajouter la fonctionnalité xx sur la base de ceci" → L'IA ajoute les modifications sans réécrire.IMPORTANT
Rappel important : Le code généré par l'IA peut occasionnellement comporter des erreurs mineures. Effectuez toujours un test trên 1 ou 2 comptes de test avant un déploiement massif. Ne l'étendez à tous les comptes qu'après vérification.
TIP
🎉 Félicitations ! Vous maîtrisez maintenant l'ensemble des méthodes pour générer des scripts d'automatisation pour Mbbrowser bằng cách sử dụng các modèles d'IA.
Vous rencontrez des problèmes ? Reportez-vous aux chapitres correspondants :
- Incohérence d'interface ? → Pack de règles pour confirmer l'utilisation de l'APIServer.
- Pas d'idée de script ? → Pack de compétences pour trouver des modèles basés trên des scénarios.
