המטרה
זרימת רכישה אוטומטית מקצה לקצה באתר Dell במסלול guest checkout — הוספת מוצרים, מילוי שילוח ותשלום, שליחה — באופן אמין למרות זיהוי בוטים, widget תשלום iframes ו-overlays קופצים.
הפתרון
Orchestrator ב-Python/Selenium (main2.py) שמריץ add-to-cart + guest checkout מ-CLI, עם --step atc/--step checkout מודולרי, שילוח/תשלום מ-.env/JSON/demo, שכבת האנשה, iframe-aware, ניקוי overlays, טיפול BrightData SSL, היסטוריה ב-MongoDB, ו-artifacts לכישלון (DOM snapshot + failed_steps.json).
עיקרי הדברים
- שכבת האנשה מנצחת את ה-anti-bot של Dell
- מעבר iframe + Shadow DOM ל-widget התשלום
- Artifacts אוטומטיים קיצרו דיבוג משעות לדקות
- שלבי CLI מודולריים (atc / checkout / מלא)
האתגר
Dell מזהה webdriver, מהירות הקלדה אחידה וגלילה מהירה ומעביר ל-CAPTCHA/SSL interstitial.
שכבת האנשה ייעודית: type_slowly() עם jitter, human_pause() עם התפלגות נורמלית, human_scroll(), fingerprints.py לפרופיל קבוע, ו-bypass_ssl_interstitial_if_present().
שדות האשראי של Dell ב-iframes מקוננים שמשתנים — find_element נאיבי נכשל.
switch_into_context_with(predicate) עובר על כל ה-frames; deep_find() עובר Shadow DOM; כל שדה עטוף ב-ensure_visible_and_focus + js_set_value().
Dell מזריק מודלים שיווקיים ו-cookie banners שחוסמים לחיצות.
try_dismiss_overlays() רץ לפני כל לחיצה קריטית; click_safely() תופס ElementClickInterceptedException ומנסה שוב.
כישלונות שקטים במכונות מרוחקות דורשים מצב DOM מלא לבדיקה.
save_artifacts() שומר HTML snapshot + failed_steps.json עם step/URL/selector/error — ברפו כבר יש artifacts שמוכיחים שזה עבד.
מה נמסר
- main2.py CLI
- dell_guest_checkout.py ליבת הזרימה
- actions.py + utils.py שכבת פעולה אנושית
- shipping_demo.py + payment_demo.py פרופילי demo
- fingerprints.py פרופיל דפדפן עקבי
- integrations/db.py מחבר Mongo
- BrightData SSL cert + README
- requirements.txt
תוצאות
ATC → shipping → payment → submit
זרימה
4 (.env/JSON/demo/CLI)
מקורות קלט
HTML + JSON artifacts
תצפית
MongoDB
היסטוריה
מה זה לימד אותי
- טיפול הגנתי בלחיצות/overlays חשוב כמו ה-happy path — 80% מה-flakes ממודלים בזמן הלא נכון
- Artifacts של כישלון חותכים דיבוג משעות לדקות
- פרופילי שילוח/תשלום החלפיים שומרים על אותו קוד בטוח בדיב ובפרודקשן
