openclaw browser
إدارة سطح التحكم في المتصفح في OpenClaw وتشغيل إجراءات المتصفح (دورة الحياة، الملفات التعريفية، علامات التبويب، اللقطات، لقطات الشاشة، التنقل، الإدخال، محاكاة الحالة، وتصحيح الأخطاء).
ذات صلة:
- أداة المتصفح + API: أداة المتصفح
العلامات الشائعة
--url <gatewayWsUrl>: عنوان URL لـ WebSocket في Gateway (يستخدم الإعدادات افتراضياً).--token <token>: رمز Gateway (إذا كان مطلوباً).--timeout <ms>: مهلة الطلب (ms).--expect-final: الانتظار لاستجابة Gateway نهائية.--browser-profile <name>: اختيار ملف تعريفي للمتصفح (الافتراضي من الإعدادات).--json: إخراج قابل للقراءة آلياً (حيثما يكون مدعوماً).
البدء السريع (محلي)
browser({ action: "doctor" }).
استكشاف الأخطاء سريعاً
إذا فشلstart مع not reachable after start، فاستكشف جاهزية CDP أولاً. إذا نجح start وtabs لكن فشل open أو navigate، فإن مستوى التحكم في المتصفح سليم ويكون الفشل عادةً بسبب سياسة SSRF للتنقل.
الحد الأدنى من التسلسل:
دورة الحياة
- يضيف
doctor --deepفحص لقطة حي. يكون مفيداً عندما تكون جاهزية CDP الأساسية خضراء لكنك تريد دليلاً على أن علامة التبويب الحالية قابلة للفحص. - بالنسبة إلى ملفات
attachOnlyوملفات CDP البعيدة، يغلقopenclaw browser stopجلسة التحكم النشطة ويمسح تجاوزات المحاكاة المؤقتة حتى عندما لا يكون OpenClaw قد شغّل عملية المتصفح بنفسه. - بالنسبة إلى الملفات التعريفية المحلية المُدارة، يوقف
openclaw browser stopعملية المتصفح التي تم إنشاؤها. - يطبّق
openclaw browser start --headlessعلى طلب البدء هذا فقط و فقط عندما يشغّل OpenClaw متصفحاً محلياً مُداراً. لا يعيد كتابةbrowser.headlessأو إعدادات الملف التعريفي، ولا يفعل شيئاً لمتصفح يعمل بالفعل. - على مضيفي Linux من دون
DISPLAYأوWAYLAND_DISPLAY، تعمل الملفات التعريفية المحلية المُدارة بوضع headless تلقائياً ما لم يطلبOPENCLAW_BROWSER_HEADLESS=0أوbrowser.headless=falseأوbrowser.profiles.<name>.headless=falseمتصفحاً مرئياً صراحةً.
إذا كان الأمر مفقوداً
إذا كانopenclaw browser أمراً غير معروف، فتحقق من plugins.allow في
~/.openclaw/openclaw.json.
عندما يكون plugins.allow موجوداً، أدرج Plugin المتصفح المضمّن صراحةً
ما لم تكن الإعدادات تحتوي بالفعل على كتلة browser جذرية:
browser جذرية صريحة، مثل browser.enabled=true أو
browser.profiles.<name>، تنشّط أيضاً Plugin المتصفح المضمّن ضمن
قائمة سماح Plugins مقيّدة.
ذات صلة: أداة المتصفح
الملفات التعريفية
الملفات التعريفية هي إعدادات توجيه متصفح مسماة. عملياً:openclaw: يشغّل مثيل Chrome مخصصاً تديره OpenClaw أو يتصل به (دليل بيانات مستخدم معزول).user: يتحكم في جلسة Chrome الحالية المسجَّل دخولك إليها عبر Chrome DevTools MCP.- ملفات CDP التعريفية المخصصة: تشير إلى نقطة نهاية CDP محلية أو بعيدة.
علامات التبويب
tabs أولاً suggestedTargetId، ثم tabId المستقر مثل t1،
والتسمية الاختيارية، وtargetId الخام. يجب على الوكلاء تمرير
suggestedTargetId مرة أخرى إلى focus وclose واللقطات والإجراءات. يمكنك
تعيين تسمية باستخدام open --label أو tab new --label أو tab label؛ وتُقبل التسميات
ومعرّفات علامات التبويب ومعرّفات الأهداف الخام وبادئات target-id الفريدة كلها.
لا يزال حقل الطلب مسمى targetId للتوافق، لكنه يقبل
مراجع علامات التبويب هذه. تعامل مع معرّفات الأهداف الخام كمقابض تشخيصية، لا كذاكرة
وكيل دائمة.
عندما يستبدل Chromium الهدف الخام الأساسي أثناء تنقل أو إرسال نموذج،
تبقي OpenClaw tabId/التسمية المستقرة مرتبطة بعلامة التبويب البديلة
عندما تستطيع إثبات التطابق. تبقى معرّفات الأهداف الخام متقلبة؛ فضّل
suggestedTargetId.
اللقطة / لقطة الشاشة / الإجراءات
لقطة:--full-pageمخصص لالتقاط الصفحات فقط؛ لا يمكن دمجه مع--refأو--element.- تدعم ملفات
existing-session/userالتعريفية لقطات شاشة للصفحة ولقطات شاشة--refمن إخراج اللقطة، لكنها لا تدعم لقطات شاشة CSS--element. - يضيف
--labelsطبقة تراكب لمراجع اللقطة الحالية على لقطة الشاشة. في الملفات التعريفية المدعومة بـ Playwright، يعمل مع--full-page(طبقة تسمية لكامل الصفحة)، و--ref(طبقة تسمية لقص عنصر حسب مرجع ARIA)، و--element(طبقة تسمية لقص عنصر حسب محدد CSS)؛ في أوضاع قص العناصر، تُسقط التسميات نسبياً إلى العنصر. تتضمن الاستجابة أيضاً مصفوفةannotationsتحتوي على مربع الإحاطة لكل مرجع. يحتوي كل عنصر علىref، وnumber، وrole، وnameاختياري، وbox: {x, y, width, height}؛ تكون الإحداثيات في مساحة الصورة الملتقطة (منفذ العرض / الصفحة الكاملة / نسبية إلى العنصر). يُحذف الحقل عندما يكون فارغاً. تعرض ملفاتexisting-sessionالتعريفية طبقة تراكب chrome-mcp على لقطات شاشة الصفحة لكنها لا تستخدم مساعد إسقاط Playwright ولا تتضمنannotations؛ لقطات شاشة CSS--elementغير مدعومة هناك. من دون Playwright أو chrome-mcp، لا تتوفر لقطات الشاشة ذات التسميات. كانت الإصدارات السابقة تتجاهل--full-pageو--refو--elementفي لقطات شاشة Playwright ذات التسميات وتعيد دائماً التقاطاً لمنفذ العرض؛ أصبحت لقطات الشاشة ذات التسميات الآن تحترم تلك النطاقات. - يضيف
snapshot --urlsوجهات الروابط المكتشفة إلى لقطات AI بحيث يستطيع الوكلاء اختيار أهداف تنقل مباشرة بدلاً من التخمين من نص الرابط وحده.
evaluate --fn مصدر دالة، أو تعبيراً، أو جسم عبارة.
تُغلّف أجسام العبارات كدوال async، لذا استخدم return للقيمة
التي تريد إرجاعها. استخدم evaluate --timeout-ms <ms> عندما قد تحتاج الدالة
على جانب الصفحة إلى وقت أطول من مهلة evaluate الافتراضية.
تعيد استجابات الإجراءات targetId الخام الحالي بعد استبدال الصفحة
المشغّل بالإجراء عندما تستطيع OpenClaw إثبات علامة التبويب البديلة. ينبغي للسكربتات مع ذلك
تخزين وتمرير suggestedTargetId/التسميات لسير العمل طويل الأمد.
مساعدات الملفات + مربعات الحوار:
/tmp/openclaw/downloads افتراضياً، أو جذر temp
المُعد). استخدم waitfordownload أو download عندما يحتاج الوكيل إلى انتظار
ملف محدد وإرجاع مساره؛ تمتلك أدوات الانتظار الصريحة هذه التنزيل التالي.
تقبل عمليات الرفع الملفات من جذر الرفع المؤقت في OpenClaw والوسائط الواردة
المُدارة من OpenClaw، بما في ذلك مراجع media://inbound/<id> و
media/inbound/<id> النسبية إلى sandbox. تظل مراجع الوسائط المتداخلة، واجتياز المسارات، والمسارات المحلية
العشوائية مرفوضة.
عندما يفتح إجراء مربع حوار modal، تعيد استجابة الإجراء
blockedByDialog مع browserState.dialogs.pending؛ مرر --dialog-id للإجابة
عنه مباشرة. تظهر مربعات الحوار التي تمت معالجتها خارج OpenClaw ضمن
browserState.dialogs.recent.
الحالة والتخزين
منفذ العرض + المحاكاة:تصحيح الأخطاء
Chrome الحالي عبر MCP
استخدم الملف التعريفي المدمجuser، أو أنشئ ملف existing-session تعريفي خاصاً بك:
--cdp-url لكي يتصل Chrome MCP بتلك النقطة بدلاً من ذلك.
بالنسبة إلى Docker أو Browserless أو إعدادات بعيدة أخرى حيث لا تكون دلالات Chrome MCP مطلوبة، استخدم
ملف CDP تعريفي.
حدود existing-session الحالية:
- تستخدم الإجراءات المعتمدة على اللقطات المراجع، وليس محددات CSS
- يضبط
browser.actionTimeoutMsطلباتactالمدعومة افتراضيًا على 60000 مللي ثانية عندما يحذف المستدعونtimeoutMs؛ وتظل قيمةtimeoutMsلكل استدعاء هي الغالبة. clickللنقر بالزر الأيسر فقط- لا يدعم
typeالخيارslowly=true - لا يدعم
pressالخيارdelayMs - ترفض
hoverوscrollintoviewوdragوselectوfillوevaluateتجاوزات المهلة لكل استدعاء - يدعم
selectقيمة واحدة فقط - لا يُدعم
wait --load networkidleفي ملفات تعريف الجلسات الحالية (يعمل على CDP المُدار والخام/البعيد) - تتطلب عمليات رفع الملفات
--ref/--input-ref، ولا تدعم CSS--element، وتدعم حاليًا ملفًا واحدًا في كل مرة - لا تدعم خطاطيف مربعات الحوار
--timeout - تدعم لقطات الشاشة التقاط الصفحة و
--ref، ولكن لا تدعم CSS--element - لا تزال
responsebody، واعتراض التنزيلات، وتصدير PDF، والإجراءات الدفعية تتطلب متصفحًا مُدارًا أو ملف تعريف CDP خامًا
التحكم في المتصفح عن بُعد (وكيل مضيف node)
إذا كان Gateway يعمل على جهاز مختلف عن المتصفح، فشغّل مضيف node على الجهاز الذي يحتوي على Chrome/Brave/Edge/Chromium. سيقوم Gateway بتمرير إجراءات المتصفح عبر وكيل إلى تلك العقدة (لا يلزم خادم منفصل للتحكم في المتصفح). استخدمgateway.nodes.browser.mode للتحكم في التوجيه التلقائي، وgateway.nodes.browser.node لتثبيت عقدة محددة إذا كانت هناك عدة عقد متصلة.
الأمان + الإعداد عن بُعد: أداة المتصفح، الوصول عن بُعد، Tailscale، الأمان