openclaw browser
CLI، وأنماط البرمجة النصية (اللقطات، والمراجع، والانتظار، ومسارات تصحيح الأخطاء).
واجهة التحكم API (اختيارية)
لعمليات التكامل المحلية فقط، يوفّر Gateway واجهة HTTP API صغيرة عبر عنوان الاسترجاع. هذا الخادم المستقل اختياري — عيّن متغير البيئةOPENCLAW_EAGER_BROWSER_CONTROL_SERVER=1 في بيئة خدمة Gateway
وأعد تشغيل Gateway قبل أن تصبح نقاط نهاية HTTP متاحة. من دون
هذا المتغير، يظل وقت تشغيل التحكم بالمتصفح يعمل عبر CLI وأدوات
الوكيل، لكن لا تستمع أي خدمة على منفذ التحكم عبر عنوان الاسترجاع.
- الحالة/البدء/الإيقاف:
GET /،GET /doctor،POST /start،POST /stop،POST /reset-profile - الملفات الشخصية:
GET /profiles،POST /profiles/create،DELETE /profiles/:name - علامات التبويب:
GET /tabs،POST /tabs/open،POST /tabs/focus،DELETE /tabs/:targetId،POST /tabs/action - اللقطة/لقطة الشاشة:
GET /snapshot،POST /screenshot - الإجراءات:
POST /navigate،POST /act - الخطافات:
POST /hooks/file-chooser،POST /hooks/dialog - التنزيلات:
POST /download،POST /wait/download - الأذونات:
POST /permissions/grant - تصحيح الأخطاء:
GET /console،POST /pdf - تصحيح الأخطاء:
GET /errors،GET /requests،GET /dialogs،POST /trace/start،POST /trace/stop،POST /highlight - الشبكة:
POST /response/body - الحالة:
GET /cookies،POST /cookies/set،POST /cookies/clear - الحالة:
GET /storage/:kind،POST /storage/:kind/set،POST /storage/:kind/clear - الإعدادات:
POST /set/offline،POST /set/headers،POST /set/credentials،POST /set/geolocation،POST /set/media،POST /set/timezone،POST /set/locale،POST /set/device
POST /tabs/action هو النموذج المجمّع الذي تستخدمه CLI داخليًا للأوامر الفرعية
browser tab ({"action":"new"|"label"|"select"|"close"|"list", ...})؛
ويُفضّل استخدام مسارات علامات التبويب أحادية الغرض أعلاه عند البرمجة النصية المباشرة.
تقبل جميع نقاط النهاية ?profile=<name>. يطلب POST /start?headless=true
تشغيلًا لمرة واحدة من دون واجهة رسومية للملفات الشخصية المحلية المُدارة من دون تغيير تهيئة
المتصفح المحفوظة؛ وترفض الملفات الشخصية المخصصة للاتصال فقط، وCDP البعيد، والجلسات القائمة
هذا التجاوز لأن OpenClaw لا يشغّل عمليات المتصفح هذه.
بالنسبة إلى نقاط نهاية علامات التبويب، فإن targetId هو اسم حقل التوافق. يُفضّل تمرير
suggestedTargetId من GET /tabs أو POST /tabs/open؛ كما تُقبل التسميات ومقابض tabId
مثل t1. وتظل معرّفات أهداف CDP الأولية والبادئات الفريدة لمعرّفات
الأهداف الأولية صالحة، لكنها مقابض تشخيصية متقلبة.
إذا كانت مصادقة Gateway بالسر المشترك مهيأة، فتتطلب مسارات HTTP للمتصفح المصادقة أيضًا:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>أو مصادقة HTTP الأساسية باستخدام كلمة المرور هذه
- واجهة المتصفح المستقلة هذه عبر عنوان الاسترجاع لا تستهلك ترويسات هوية الوكيل الموثوق أو Tailscale Serve.
- إذا كانت
gateway.auth.modeهيnoneأوtrusted-proxy، فإن مسارات المتصفح عبر عنوان الاسترجاع هذه لا ترث أوضاع حمل الهوية تلك؛ أبقها مقتصرة على عنوان الاسترجاع.
عقد أخطاء /act
يستخدم POST /act استجابة خطأ منظّمة لإخفاقات التحقق على مستوى المسار
وإخفاقات السياسة:
code الحالية:
ACT_KIND_REQUIRED(HTTP 400): kindمفقود أو غير معروف.ACT_INVALID_REQUEST(HTTP 400): فشلت تسوية حمولة الإجراء أو التحقق منها.ACT_SELECTOR_UNSUPPORTED(HTTP 400): استُخدمselectorمع نوع إجراء غير مدعوم.ACT_EVALUATE_DISABLED(HTTP 403): evaluate(أوwait --fn) معطّل بواسطة التهيئة.ACT_TARGET_ID_MISMATCH(HTTP 403): يتعارضtargetIdعالي المستوى أو المجمّع مع هدف الطلب.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): الإجراء غير مدعوم للملفات الشخصية ذات الجلسات القائمة.
{ "error": "<message>" } من دون
حقل code.
متطلب Playwright
تتطلب بعض الميزات (التنقل/الإجراء/لقطة AI/لقطة الدور، ولقطات شاشة العناصر، وPDF) وجود Playwright. إذا لم يكن Playwright مثبتًا، فتعيد نقاط النهاية هذه خطأ 501 واضحًا. ما يظل يعمل من دون Playwright:- لقطات ARIA
- لقطات إمكانية الوصول بنمط الدور (
--interactive،--compact،--depth،--efficient) عند توفر WebSocket لـ CDP لكل علامة تبويب. وهذا مسار احتياطي للفحص واكتشاف المراجع؛ ويظل Playwright محرك الإجراءات الأساسي. - لقطات شاشة الصفحة لمتصفح
openclawالمُدار عند توفر WebSocket لـ CDP لكل علامة تبويب - لقطات شاشة الصفحة لملفات
existing-session/ Chrome MCP الشخصية - لقطات الشاشة المستندة إلى مراجع
existing-session(--ref) من مخرجات اللقطة
navigateact- لقطات AI التي تعتمد على تنسيق لقطة AI الأصلي في Playwright
- لقطات شاشة العناصر باستخدام محددات CSS (
--element) - تصدير PDF كامل للمتصفح
--full-page؛ ويعيد المسار fullPage is not supported for element screenshots.
إذا ظهر Playwright is not available in this gateway build، فإن حزمة
Gateway تفتقد تبعية وقت تشغيل المتصفح الأساسية. أعد تثبيت OpenClaw أو حدّثه،
ثم أعد تشغيل Gateway. وبالنسبة إلى Docker، ثبّت أيضًا ملفات متصفح Chromium
الثنائية كما هو موضح أدناه.
تثبيت Playwright في Docker
إذا كان Gateway يعمل في Docker، فتجنبnpx playwright (تعارضات تجاوز npm).
بالنسبة إلى الصور المخصصة، ضمّن Chromium داخل الصورة:
PLAYWRIGHT_BROWSERS_PATH (على سبيل المثال،
/home/node/.cache/ms-playwright) وتأكد من الاحتفاظ بـ /home/node عبر
OPENCLAW_HOME_VOLUME أو نقطة تحميل ربط. يكتشف OpenClaw تلقائيًا
Chromium المحتفَظ به على Linux. راجع Docker.
آلية العمل (داخليًا)
يقبل خادم تحكم صغير عبر عنوان الاسترجاع طلبات HTTP ويتصل بالمتصفحات المستندة إلى Chromium عبر CDP. تمر الإجراءات المتقدمة (النقر/الكتابة/اللقطة/PDF) عبر Playwright فوق CDP؛ وعند غياب Playwright، لا تتوفر إلا العمليات التي لا تعتمد عليه. يرى الوكيل واجهة واحدة مستقرة بينما يمكن تبديل المتصفحات والملفات الشخصية المحلية والبعيدة بحرية في الطبقات الداخلية.مرجع CLI السريع
تقبل جميع الأوامر--browser-profile <name> لاستهداف ملف شخصي محدد، و--json لإخراج قابل للقراءة آليًا.
الأساسيات: الحالة، علامات التبويب، الفتح/التركيز/الإغلاق
الأساسيات: الحالة، علامات التبويب، الفتح/التركيز/الإغلاق
الملفات الشخصية: العرض، الإنشاء، الحذف
الملفات الشخصية: العرض، الإنشاء، الحذف
الفحص: لقطة الشاشة، اللقطة، وحدة التحكم، الأخطاء، الطلبات
الفحص: لقطة الشاشة، اللقطة، وحدة التحكم، الأخطاء، الطلبات
الإجراءات: التنقل، النقر، الكتابة، السحب، الانتظار، التقييم
الإجراءات: التنقل، النقر، الكتابة، السحب، الانتظار، التقييم
الحالة: ملفات تعريف الارتباط، التخزين، عدم الاتصال، الترويسات، الموقع الجغرافي، الجهاز
الحالة: ملفات تعريف الارتباط، التخزين، عدم الاتصال، الترويسات، الموقع الجغرافي، الجهاز
- تتيح أداة
browserالموجّهة إلى الوكيلaction=download(يتطلبrefوpath) وaction=waitfordownload(معpathاختياري). ويُرجع كلاهما عنوان URL المحفوظ للتنزيل، واسم الملف المقترح، والمسار المحلي المحمي. يتوفر اعتراض التنزيل الصريح لملفات تعريف Playwright المُدارة؛ أما ملفات تعريف الجلسات الحالية فتُرجع خطأ عملية غير مدعومة. - يُفضّل استخدام عمليات رفع منتقي الملفات الذرّية: مرّر المشغّل
--refمع عملية الرفع كي يجهّز OpenClaw النقرة وينفّذها في طلب واحد. يظلuploadالذي يقتصر على المسارات مدعومًا عندما يكون استخدام مشغّل لاحق مقصودًا. استخدم--input-refأو--elementلتعيين حقل إدخال ملف مباشرةً. يُعدdialogاستدعاءً للتهيئة؛ شغّله قبل النقرة/الضغطة التي تُظهر مربع الحوار. إذا فتح إجراء نافذة مشروطة، فستتضمن استجابة الإجراءblockedByDialogوbrowserState.dialogs.pending؛ مرّر ذلكdialogIdللاستجابة مباشرةً. تظهر مربعات الحوار التي جرت معالجتها خارج OpenClaw ضمنbrowserState.dialogs.recent. - يتطلب
click/type/وما إلى ذلك قيمةrefمنsnapshot(قيمة12رقمية، أو مرجع دورe12، أو مرجع ARIA قابل للتنفيذax12). لا تُدعم محددات CSS للإجراءات عن قصد. استخدمclick-coordsعندما يكون الموضع المرئي ضمن إطار العرض هو الهدف الموثوق الوحيد. - تُقيّد مسارات التنزيل والتتبّع بالجذور المؤقتة لـ OpenClaw:
/tmp/openclaw{,/downloads}(البديل الاحتياطي:${os.tmpdir()}/openclaw/...). - يقبل
uploadالملفات من جذر عمليات الرفع المؤقتة في OpenClaw والوسائط الواردة التي يديرها OpenClaw. ويمكن الإشارة إلى الوسائط الواردة المُدارة بصيغةmedia://inbound/<id>، أوmedia/inbound/<id>نسبةً إلى صندوق العزل، أو باستخدام مسار محلول داخل دليل الوسائط الواردة المُدارة. ولا تزال مراجع الوسائط المتداخلة، واجتياز المسارات، والروابط الرمزية، والروابط الصلبة، والمسارات المحلية العشوائية مرفوضة. - يمكن لـ
uploadأيضًا تعيين حقول إدخال الملفات مباشرةً عبر--input-refأو--element.
suggestedTargetId من tabs في البرامج النصية.
نظرة سريعة على علامات اللقطات:
--format ai(الافتراضي مع Playwright): لقطة للذكاء الاصطناعي تتضمن مراجع رقمية (aria-ref="<n>").--format aria: شجرة إمكانية الوصول مع مراجعaxN. عند توفر Playwright، يربط OpenClaw المراجع بمعرّفات DOM الخلفية في الصفحة الحية لكي تتمكن الإجراءات اللاحقة من استخدامها؛ وإلا فتعامل مع المخرجات على أنها مخصصة للفحص فقط.--efficient(أو--mode efficient): إعداد مسبق مضغوط للقطة الأدوار. عيّنbrowser.snapshotDefaults.mode: "efficient"لجعل هذا الإعداد افتراضيًا (راجع تهيئة Gateway).- تفرض
--interactiveو--compactو--depthو--selectorلقطة أدوار تحتوي على مراجعref=e12. ويقصر--frame "<iframe>"لقطات الأدوار على إطار iframe. - مع Playwright، يضيف
--labelsلقطة شاشة تتراكب عليها تسميات المراجع (ويطبعMEDIA:<path>) بالإضافة إلى مصفوفةannotationsتحتوي على المربع المحيط بكل مرجع. فيscreenshot، تعمل التسميات المدعومة من Playwright مع--full-pageو--refو--element؛ أما فيsnapshot، فتظل لقطة الشاشة المصاحبة مقتصرة على إطار العرض. تعرض ملفات تعريف الجلسات الحالية/chrome-mcp تسميات متراكبة على لقطات شاشة الصفحة، لكنها لا تُرجعannotationsولا تستخدم مساعد Playwright لعرض الصفحة الكاملة/المرجع/العنصر. ومن دون Playwright أو chrome-mcp، لا تتوفر لقطات الشاشة ذات التسميات. - يلحق
--urlsوجهات الروابط المكتشفة بلقطات الذكاء الاصطناعي.
اللقطات والمراجع
يدعم OpenClaw نمطين من «اللقطات»:-
لقطة الذكاء الاصطناعي (مراجع رقمية):
openclaw browser snapshot(الافتراضي؛--format ai)- المخرجات: لقطة نصية تتضمن مراجع رقمية.
- الإجراءات:
openclaw browser click 12،openclaw browser type 23 "hello". - داخليًا، يُحل المرجع عبر
aria-refفي Playwright.
-
لقطة الأدوار (مراجع أدوار مثل
e12):openclaw browser snapshot --interactive(أو--compact،--depth،--selector،--frame)- المخرجات: قائمة/شجرة قائمة على الأدوار تحتوي على
[ref=e12](و[nth=1]اختياري). - الإجراءات:
openclaw browser click e12،openclaw browser highlight e12. - داخليًا، يُحل المرجع عبر
getByRole(...)(بالإضافة إلىnth()للتكرارات). - أضف
--labelsلتضمين لقطة شاشة تتراكب عليها تسمياتe12. في ملفات التعريف المدعومة من Playwright، يؤدي هذا أيضًا إلى إرجاع بيانات المربع المحيط لكل مرجع (annotations[]). - أضف
--urlsعندما يكون نص الرابط ملتبسًا ويحتاج الوكيل إلى أهداف تنقّل محددة.
- المخرجات: قائمة/شجرة قائمة على الأدوار تحتوي على
-
لقطة ARIA (مراجع ARIA مثل
ax12):openclaw browser snapshot --format aria- المخرجات: شجرة إمكانية الوصول على هيئة عُقد منظّمة.
- الإجراءات: يعمل
openclaw browser click ax12عندما يستطيع مسار اللقطة ربط المرجع عبر Playwright ومعرّفات DOM الخلفية في Chrome.
-
إذا لم يتوفر Playwright، فقد تظل لقطات ARIA مفيدة
للفحص، لكن قد لا تكون المراجع قابلة للتنفيذ. التقط لقطة جديدة باستخدام
--format aiأو--interactiveعندما تحتاج إلى مراجع إجراءات. -
إثبات Docker لمسار الرجوع الاحتياطي لـ CDP الخام: يشغّل
pnpm test:docker:browser-cdp-snapshotChromium مع CDP، وينفّذbrowser doctor --deep، ويتحقق من أن لقطات الأدوار تتضمن عناوين URL للروابط، والعناصر القابلة للنقر التي رُقّيت بواسطة المؤشر، وبيانات iframe الوصفية.
- المراجع ليست ثابتة عبر عمليات التنقّل؛ إذا فشل شيء ما، فأعد تشغيل
snapshotواستخدم مرجعًا جديدًا. - يُرجع
/actقيمةtargetIdالخام الحالية بعد الاستبدال الناتج عن إجراء عندما يستطيع إثبات علامة التبويب البديلة. واصل استخدام معرّفات علامات التبويب/تسمياتها الثابتة للأوامر اللاحقة. - إذا أُخذت لقطة الأدوار باستخدام
--frame، فتظل مراجع الأدوار مقصورة على إطار iframe ذلك حتى لقطة الأدوار التالية. - تفشل مراجع
axNالمجهولة أو القديمة بسرعة بدلًا من الانتقال احتياطيًا إلى محددaria-refفي Playwright. التقط لقطة جديدة في علامة التبويب نفسها عندما يحدث ذلك.
إمكانات الانتظار الإضافية
يمكن الانتظار لأكثر من مجرد الوقت/النص:- انتظار عنوان URL (يدعم Playwright أنماط glob):
openclaw browser wait --url "**/dash"
- انتظار حالة التحميل:
openclaw browser wait --load networkidle- مدعوم في ملفات تعريف
openclawالمُدارة وملفات تعريف CDP الخام/البعيدة. ترفض ملفات التعريف التي تستخدم برنامج التشغيلexisting-session(بما فيها ملف التعريف الافتراضيuser) القيمةnetworkidle؛ استخدم هناك--urlأو--textأو محددًا أو عمليات انتظار--fn.
- انتظار تحقق شرط JavaScript:
openclaw browser wait --fn "window.ready===true"
- انتظار ظهور محدد:
openclaw browser wait "#main"
سير عمل تصحيح الأخطاء
عند فشل إجراء (مثل «غير مرئي» أو «انتهاك الوضع الصارم» أو «محجوب»):openclaw browser snapshot --interactive- استخدم
click <ref>/type <ref>(يُفضّل استخدام مراجع الأدوار في الوضع التفاعلي) - إذا استمر الفشل: استخدم
openclaw browser highlight <ref>لمعرفة ما يستهدفه Playwright - إذا تصرفت الصفحة على نحو غير معتاد:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- للتصحيح المتعمق: سجّل تتبّعًا:
openclaw browser trace start- أعد إنتاج المشكلة
openclaw browser trace stop(يطبعTRACE:<path>)
مخرجات JSON
يُستخدم--json للبرمجة النصية والأدوات المنظّمة.
أمثلة:
refs بالإضافة إلى كتلة stats صغيرة (الأسطر/المحارف/المراجع/التفاعلية) لكي تتمكن الأدوات من تحليل حجم الحمولة وكثافتها.
عناصر التحكم في الحالة والبيئة
تفيد هذه العناصر في سير عمل «اجعل الموقع يتصرف مثل X»:- ملفات تعريف الارتباط:
cookies،cookies set،cookies clear - التخزين:
storage local|session get|set|clear - وضع عدم الاتصال:
set offline on|off - الرؤوس:
set headers --headers-json '{"X-Debug":"1"}'(أو الصيغة الموضعيةset headers '{"X-Debug":"1"}') - مصادقة HTTP الأساسية:
set credentials user pass(أو--clear) - الموقع الجغرافي:
set geo <lat> <lon> --origin "https://example.com"(أو--clear) - الوسائط:
set media dark|light|no-preference|none - المنطقة الزمنية / الإعدادات المحلية:
set timezone ...،set locale ... - الجهاز / إطار العرض:
set device "iPhone 14"(إعدادات أجهزة Playwright المسبقة)set viewport 1280 720
الأمان والخصوصية
- قد يحتوي ملف تعريف متصفح openclaw على جلسات مسجّل دخولها؛ فتعامَل معه على أنه حساس.
- ينفّذ
browser act kind=evaluate/openclaw browser evaluateوwait --fnتعليمات JavaScript برمجية عشوائية في سياق الصفحة. وقد يوجّه حقن المطالبات هذا السلوك. عطّله باستخدامbrowser.evaluateEnabled=falseإذا لم تكن بحاجة إليه. - يقبل
openclaw browser evaluate --fnمصدر دالة، أو تعبيرًا، أو متن عبارة. تُغلّف متون العبارات كدوال غير متزامنة، لذا استخدمreturnللقيمة التي تريد إرجاعها. استخدم--timeout-ms <ms>عندما تحتاج الدالة العاملة داخل الصفحة إلى وقت أطول من مهلة التقييم الافتراضية. - لتسجيلات الدخول وملاحظات مكافحة الروبوتات (X/Twitter وما إلى ذلك)، راجع تسجيل الدخول في المتصفح + النشر على X/Twitter.
- أبقِ مضيف Gateway/node خاصًا (عبر loopback أو tailnet فقط).
- نقاط نهاية CDP البعيدة قوية؛ استخدم نفقًا للوصول إليها واحمِها.
ذو صلة
- المتصفح - نظرة عامة، والتهيئة، وملفات التعريف، والأمان
- تسجيل الدخول في المتصفح - تسجيل الدخول إلى المواقع
- استكشاف أخطاء المتصفح على Linux وإصلاحها
- استكشاف أخطاء المتصفح على WSL2 وإصلاحها