المتصفح (المدار من OpenClaw)
يمكن لـ OpenClaw تشغيل ملف تعريف مخصص لـ Chrome/Brave/Edge/Chromium يتحكم فيه الوكيل. إنه معزول عن متصفحك الشخصي ويتم إدارته من خلال خدمة تحكم محلية صغيرة داخل البوابة (حلقة العودة فقط). منظور المبتدئين:
- فكر فيه على أنه متصفح منفصل مخصص للوكيل فقط.
- ملف تعريف
openclawلا يلمس ملف تعريف متصفحك الشخصي. - يمكن للوكيل فتح علامات تبويب، وقراءة الصفحات، والنقر، والكتابة في مسار آمن.
- يستخدم ملف تعريف
chromeالافتراضي متصفح Chromium الافتراضي للنظام عبر ناقل الامتداد؛ انتقل إلىopenclawلاستخدام المتصفح المعزول المدار.
ما تحصل عليه
- ملف تعريف متصفح منفصل باسم openclaw (لون برتقالي مائل افتراضيًا).
- تحكم حتمي في علامات التبويب (عرض/فتح/تركيز/إغلاق).
- إجراءات الوكيل (نقر/كتابة/سحب/تحديد)، لقطات، صور شاشة، ملفات PDF.
- دعم اختياري لملفات تعريف متعددة (
openclaw,work,remote, …).
هذا المتصفح ليس متصفحك اليومي. إنه سطح آمن ومعزول لأتمتة الوكيل والتحقق منه.
البدء السريع
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
إذا ظهرت رسالة "Browser disabled"، فعّله في التكوين (انظر أدناه) وأعد تشغيل البوابة.
ملفات التعريف: openclaw مقابل chrome
openclaw: متصفح مدار ومعزول (لا يتطلب امتدادًا).chrome: ناقل امتداد إلى متصفح نظامك (يتطلب إرفاق امتداد OpenClaw بعلامة تبويب).
اضبط browser.defaultProfile: "openclaw" إذا كنت تريد الوضع المدار افتراضيًا.
التكوين
توجد إعدادات المتصفح في ~/.openclaw/openclaw.json.
{
browser: {
enabled: true, // الافتراضي: true
ssrfPolicy: {
dangerouslyAllowPrivateNetwork: true, // وضع الشبكة الموثوقة الافتراضي
// allowPrivateNetwork: true, // اسم مستعار قديم
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
// cdpUrl: "http://127.0.0.1:18792", // تجاوز ملف تعريف واحد قديم
remoteCdpTimeoutMs: 1500, // مهلة HTTP لـ CDP عن بُعد (مللي ثانية)
remoteCdpHandshakeTimeoutMs: 3000, // مهلة مصافحة WebSocket لـ CDP عن بُعد (مللي ثانية)
defaultProfile: "chrome",
color: "#FF4500",
headless: false,
noSandbox: false,
attachOnly: false,
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
profiles: {
openclaw: { cdpPort: 18800, color: "#FF4500" },
work: { cdpPort: 18801, color: "#0066CC" },
remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },
},
},
}
ملاحظات:
- تربط خدمة التحكم في المتصفح بحلقة العودة على منفذ مشتق من
gateway.port(الافتراضي:18791، وهو gateway + 2). يستخدم الناقل المنفذ التالي (18792). - إذا قمت بتجاوز منفذ البوابة (
gateway.portأوOPENCLAW_GATEWAY_PORT)، فإن منافذ المتصفح المشتقة تتغير للبقاء في نفس "العائلة". cdpUrlالافتراضي هو منفذ الناقل عندما لا يتم تعيينه.remoteCdpTimeoutMsينطبق على فحوصات وصول CDP عن بُعد (غير حلقة العودة).remoteCdpHandshakeTimeoutMsينطبق على فحوصات وصول WebSocket لـ CDP عن بُعد.- يتم حماية التنقل في المتصفح/فتح علامة التبويب من SSRF قبل التنقل ويتم إعادة التحقق منها بأفضل جهد على عنوان URL النهائي
http(s)بعد التنقل. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkالافتراضي هوtrue(نموذج الشبكة الموثوقة). اضبطه علىfalseللتصفح العام الصارم فقط.browser.ssrfPolicy.allowPrivateNetworkلا يزال مدعومًا كاسم مستعار قديم للتطابق.attachOnly: trueتعني "عدم تشغيل متصفح محلي أبدًا؛ قم بالإرفاق فقط إذا كان قيد التشغيل بالفعل."color+colorلكل ملف تعريف تلوين واجهة المستخدم للمتصفح حتى تتمكن من رؤية الملف الشخصي النشط.- الملف الشخصي الافتراضي هو
openclaw(متصفح مستقل مدار من OpenClaw). استخدمdefaultProfile: "chrome"للانضمام إلى ناقل امتداد Chrome. - ترتيب الكشف التلقائي: متصفح النظام الافتراضي إذا كان يعتمد على Chromium؛ وإلا Chrome → Brave → Edge → Chromium → Chrome Canary.
- تخصص ملفات تعريف
openclawالمحلية تلقائيًاcdpPort/cdpUrl— اضبطها فقط لـ CDP عن بُعد.
استخدام Brave (أو متصفح آخر يعتمد على Chromium)
إذا كان متصفح نظامك الافتراضي يعتمد على Chromium (Chrome/Brave/Edge/إلخ)، فإن OpenClaw يستخدمه تلقائيًا. اضبط browser.executablePath لتجاوز الكشف التلقائي: مثال CLI:
openclaw config set browser.executablePath "/usr/bin/google-chrome"
// macOS
{
browser: {
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
}
// Windows
{
browser: {
executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
}
}
// Linux
{
browser: {
executablePath: "/usr/bin/brave-browser"
}
}
التحكم المحلي مقابل التحكم عن بُعد
- التحكم المحلي (الافتراضي): تبدأ البوابة خدمة التحكم في حلقة العودة ويمكنها تشغيل متصفح محلي.
- التحكم عن بُعد (مضيف العقدة): قم بتشغيل مضيف عقدة على الجهاز الذي يحتوي على المتصفح؛ تقوم البوابة بتمرير إجراءات المتصفح إليه.
- CDP عن بُعد: اضبط
browser.profiles.<name>.cdpUrl(أوbrowser.cdpUrl) للإرفاق بمتصفح يعتمد على Chromium عن بُعد. في هذه الحالة، لن يقوم OpenClaw بتشغيل متصفح محلي.
يمكن أن تتضمن عناوين URL لـ CDP عن بُعد مصادقة:
- رموز الاستعلام (مثل
https://provider.example?token=<token>) - مصادقة HTTP الأساسية (مثل
https://user:pass@provider.example)
يحافظ OpenClaw على المصادقة عند استدعاء نقاط النهاية /json/* وعند الاتصال بـ WebSocket الخاص بـ CDP. يُفضل استخدام متغيرات البيئة أو مديري الأسرار للرموز بدلاً من إضافتها إلى ملفات التكوين.
وكيل متصفح العقدة (الافتراضي بدون تكوين)
إذا قمت بتشغيل مضيف عقدة على الجهاز الذي يحتوي على متصفحك، يمكن لـ OpenClaw توجيه مكالمات أدوات المتصفح تلقائيًا إلى تلك العقدة دون أي تكوين إضافي للمتصفح. هذا هو المسار الافتراضي للبوابات البعيدة. ملاحظات:
- يعرض مضيف العقدة خادم التحكم في المتصفح المحلي عبر أمر وكيل.
- تأتي ملفات التعريف من تكوين
browser.profilesالخاص بالعقدة (نفس الشيء محليًا). - عطله إذا كنت لا تريده:
- على العقدة:
nodeHost.browserProxy.enabled=false - على البوابة:
gateway.nodes.browser.mode="off"
- على العقدة:
Browserless (CDP بعيد مستضاف)
Browserless هي خدمة Chromium مستضافة تعرض نقاط نهاية CDP عبر HTTPS. يمكنك توجيه ملف تعريف متصفح OpenClaw إلى نقطة نهاية منطقة Browserless والمصادقة باستخدام مفتاح API الخاص بك. مثال:
{
browser: {
enabled: true,
defaultProfile: "browserless",
remoteCdpTimeoutMs: 2000,
remoteCdpHandshakeTimeoutMs: 4000,
profiles: {
browserless: {
cdpUrl: "https://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
color: "#00AA00",
},
},
},
}
ملاحظات:
- استبدل
<BROWSERLESS_API_KEY>برمز Browserless الحقيقي الخاص بك. - اختر نقطة النهاية الإقليمية التي تطابق حساب Browserless الخاص بك (انظر وثائقهم).
الأمان
أفكار رئيسية:
- التحكم في المتصفح يكون في حلقة العودة فقط؛ يتدفق الوصول من خلال مصادقة البوابة أو اقتران العقدة.
- إذا تم تمكين التحكم في المتصفح ولم يتم تكوين أي مصادقة، فإن OpenClaw يولد تلقائيًا
gateway.auth.tokenعند بدء التشغيل ويحفظه في التكوين. - احتفظ بالبوابة وأي مضيفي عقد على شبكة خاصة (Tailscale)؛ تجنب التعرض العام.
- تعامل مع عناوين URL/رموز CDP البعيدة كأسرار؛ يُفضل استخدام متغيرات البيئة أو مدير الأسرار.
نصائح CDP عن بُعد:
- يُفضل استخدام نقاط نهاية HTTPS والرموز قصيرة العمر حيثما أمكن.
- تجنب تضمين الرموز طويلة العمر مباشرة في ملفات التكوين.
ملفات التعريف (متعددة المتصفحات)
يدعم OpenClaw ملفات تعريف مسماة متعددة (تكوينات التوجيه). يمكن أن تكون ملفات التعريف:
- مدارة من openclaw: مثيل متصفح مخصص يعتمد على Chromium مع دليل بيانات المستخدم الخاص به + منفذ CDP
- بعيد: عنوان URL صريح لـ CDP (متصفح يعتمد على Chromium يعمل في مكان آخر)
- ناقل الامتداد: علامات تبويب Chrome الحالية الخاصة بك عبر الناقل المحلي + امتداد Chrome
الافتراضيات:
- يتم إنشاء ملف تعريف
openclawتلقائيًا إذا كان مفقودًا. - ملف تعريف
chromeمضمن لناقل امتداد Chrome (يشير إلىhttp://127.0.0.1:18792افتراضيًا). - تخصص منافذ CDP المحلية من 18800–18899 افتراضيًا.
- يؤدي حذف ملف تعريف إلى نقل دليل البيانات المحلي الخاص به إلى سلة المهملات.
تقبل جميع نقاط نهاية التحكم ?profile=<name>؛ يستخدم CLI --browser-profile.
ناقل امتداد Chrome (استخدم Chrome الحالي الخاص بك)
يمكن لـ OpenClaw أيضًا تشغيل علامات تبويب Chrome الحالية الخاصة بك (بدون مثيل Chrome منفصل "openclaw") عبر ناقل CDP محلي + امتداد Chrome. دليل كامل: امتداد Chrome التدفق:
- تعمل البوابة محليًا (نفس الجهاز) أو يعمل مضيف عقدة على جهاز المتصفح.
- يستمع خادم ناقل محلي عند
cdpUrlلحلقة العودة (الافتراضي:http://127.0.0.1:18792). - تنقر على أيقونة امتداد OpenClaw Browser Relay على علامة تبويب للإرفاق (لا يتم الإرفاق تلقائيًا).
- يتحكم الوكيل في تلك علامة التبويب عبر أداة
browserالعادية، عن طريق تحديد الملف الشخصي الصحيح.
إذا كانت البوابة تعمل في مكان آخر، فقم بتشغيل مضيف عقدة على جهاز المتصفح حتى تتمكن البوابة من تمرير إجراءات المتصفح.
الجلسات المعزولة
إذا كانت جلسة الوكيل معزولة، فقد تستخدم أداة browser افتراضيًا target="sandbox" (متصفح معزول). يتطلب استيلاء ناقل امتداد Chrome التحكم في متصفح المضيف، لذا إما:
- قم بتشغيل الجلسة بدون عزل، أو
- اضبط
agents.defaults.sandbox.browser.allowHostControl: trueواستخدمtarget="host"عند استدعاء الأداة.
الإعداد
- قم بتحميل الامتداد (dev/unpacked):
openclaw browser extension install
- Chrome →
chrome://extensions→ تمكين "وضع المطور" - "Load unpacked" → حدد الدليل المطبوع بواسطة
openclaw browser extension path - ثبت الامتداد، ثم انقر عليه على علامة التبويب التي تريد التحكم فيها (تظهر الشارة
ON).
- استخدمه:
- CLI:
openclaw browser --browser-profile chrome tabs - أداة الوكيل:
browserمعprofile="chrome"
اختياري: إذا كنت تريد اسمًا مختلفًا أو منفذ ناقل مختلف، فأنشئ ملف تعريفك الخاص:
openclaw browser create-profile \
--name my-chrome \
--driver extension \
--cdp-url http://127.0.0.1:18792 \
--color "#00AA00"
ملاحظات:
- يعتمد هذا الوضع على Playwright-on-CDP لمعظم العمليات (صور الشاشة/اللقطات/الإجراءات).
- افصل بالنقر على أيقونة الامتداد مرة أخرى.
ضمانات العزل
- دليل بيانات مستخدم مخصص: لا يلمس ملف تعريف متصفحك الشخصي أبدًا.
- منافذ مخصصة: يتجنب
9222لمنع التعارضات مع سير عمل التطوير. - تحكم حتمي في علامات التبويب: استهدف علامات التبويب بواسطة
targetId، وليس "علامة التبويب الأخيرة".
اختيار المتصفح
عند التشغيل محليًا، يختار OpenClaw أول متاح:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
يمكنك التجاوز باستخدام browser.executablePath. المنصات:
- macOS: يتحقق من
/Applicationsو~/Applications. - Linux: يبحث عن
google-chrome,brave,microsoft-edge,chromium, إلخ. - Windows: يتحقق من مواقع التثبيت الشائعة.
واجهة برمجة التطبيقات للتحكم (اختياري)
للتكاملات المحلية فقط، تعرض البواجة واجهة برمجة تطبيقات HTTP صغيرة لحلقة العودة:
- الحالة/البدء/الإيقاف:
GET /,POST /start,POST /stop - علامات التبويب:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - لقطة/صورة شاشة:
GET /snapshot,POST /screenshot - إجراءات:
POST /navigate,POST /act - خطاطيف:
POST /hooks/file-chooser,POST /hooks/dialog - التنزيلات:
POST /download,POST /wait/download - التصحيح:
GET /console,POST /pdf - التصحيح:
GET /errors,GET /requests,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
تقبل جميع نقاط النهاية ?profile=<name>. إذا تم تكوين مصادقة البوابة، فإن مسارات HTTP للمتصفح تتطلب مصادقة أيضًا:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>أو مصادقة HTTP الأساسية باستخدام تلك كلمة المرور
متطلب Playwright
تتطلب بعض الميزات (التنقل/الإجراء/لقطة الذكاء الاصطناعي/لقطة الدور، صور شاشة العنصر، PDF) Playwright. إذا لم يكن Playwright مثبتًا، فترجع نقاط النهاية هذه خطأ 501 واضحًا. لا تزال لقطات ARIA وصور الشاشة الأساسية تعمل لمتصفح Chrome المدار من openclaw. بالنسبة لبرنامج تشغيل ناقل امتداد Chrome، تتطلب لقطات ARIA وصور الشاشة Playwright. إذا رأيت Playwright is not available in this gateway build، فقم بتثبيت حزمة Playwright الكاملة (وليس playwright-core) وأعد تشغيل البوابة، أو أعد تثبيت OpenClaw مع دعم المتصفح.
تثبيت Playwright في Docker
إذا كانت بوابتك تعمل في Docker، فتجنب npx playwright (تعارضات تجاوز npm). استخدم CLI المضمن بدلاً من ذلك:
docker compose run --rm openclaw-cli \
node /app/node_modules/playwright-core/cli.js install chromium
لحفظ تنزيلات المتصفح، اضبط PLAYWRIGHT_BROWSERS_PATH (على سبيل المثال، /home/node/.cache/ms-playwright) وتأكد من استمرار /home/node عبر OPENCLAW_HOME_VOLUME أو ربط نقطة. انظر Docker.
كيف يعمل (داخليًا)
تدفق عالي المستوى:
- يقبل خادم تحكم صغير طلبات HTTP.
- يتصل بمتصفحات تعتمد على Chromium (Chrome/Brave/Edge/Chromium) عبر CDP.
- للإجراءات المتقدمة (نقر/كتابة/لقطة/PDF)، يستخدم Playwright فوق CDP.
- عندما يكون Playwright مفقودًا، تتوفر فقط العمليات غير Playwright.
يحافظ هذا التصميم على الوكيل على واجهة مستقرة وحتمية بينما يتيح لك تبديل المتصفحات والملفات الشخصية المحلية/البعيدة.
مرجع سريع لـ CLI
تقبل جميع الأوامر --browser-profile <name> لاستهداف ملف تعريف محدد. تقبل جميع الأوامر أيضًا --json للإخراج الذي يمكن قراءته آليًا (حمولات مستقرة). الأساسيات:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234
التفتيش:
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level erroropenclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
الإجراءات:
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 report.pdfopenclaw browser waitfordownload report.pdfopenclaw browser upload /tmp/openclaw/uploads/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop
الحالة:
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --headers-json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"
ملاحظات:
uploadوdialogهما مكالمات تسليح؛ قم بتشغيلهما قبل النقرة/الضغطة التي تؤدي إلى تشغيل منتقي الملفات/الحوار.- مسارات إخراج التنزيل والتتبع مقيدة بجذور OpenClaw المؤقتة:
- التتبع:
/tmp/openclaw(الاحتياطي:${os.tmpdir()}/openclaw) - التنزيلات:
/tmp/openclaw/downloads(الاحتياطي:${os.tmpdir()}/openclaw/downloads)
- التتبع:
- مسارات التحميل مقيدة بجذر تحميلات OpenClaw المؤقت:
- التحميلات:
/tmp/openclaw/uploads(الاحتياطي:${os.tmpdir()}/openclaw/uploads)
- التحميلات:
- يمكن لـ
uploadأيضًا تعيين مدخلات الملف مباشرة عبر--input-refأو--element. snapshot:--format ai(الافتراضي عند تثبيت Playwright): يُرجع لقطة ذكاء اصطناعي مع مراجع رقمية (aria-ref="<n>").--format aria: يُرجع شجرة إمكانية الوصول (بدون مراجع؛ للفحص فقط).--efficient(أو--mode efficient): إعداد مسبق مضغوط للقطة الدور (interactive + compact + depth + maxChars أقل).- الافتراضي للتكوين (أداة/CLI فقط): اضبط
browser.snapshotDefaults.mode: "efficient"لاستخدام لقطات فعالة عندما لا يمرر المتصل وضعًا (انظر تكوين البوابة). - تجبر خيارات لقطة الدور (
--interactive,--compact,--depth,--selector) على لقطة قائمة على الدور مع مراجع مثلref=e12. --frame "<iframe selector>"يحدد نطاق لقطات الدور إلى إطار iframe (يقترن بمراجع دور مثلe12).--interactiveيُخرج قائمة مسطحة وسهلة الاختيار للعناصر التفاعلية (الأفضل لدفع الإجراءات).--labelsيضيف صورة شاشة لمنطقة العرض فقط مع ملصقات مراجع متراكبة (يطبعMEDIA:<path>).
- تتطلب
click/type/إلخrefمنsnapshot(إما رقمي12أو مرجع دورe12). لا يتم دعم محددات CSS عمدًا للإجراءات.
اللقطات والمراجع
يدعم 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متراكبة.
- الإخراج: قائمة/شجرة قائمة على الدور مع
سلوك المرجع:
- المراجع ليست مستقرة عبر التنقلات؛ إذا فشل شيء ما، أعد تشغيل
snapshotواستخدم مرجعًا جديدًا. - إذا تم أخذ لقطة الدور باستخدام
--frame، فإن مراجع الدور تكون محددة النطاق إلى إطار iframe ذلك حتى لقطة الدور التالية.
تعزيزات الانتظار
يمكنك الانتظار لأكثر من مجرد وقت/نص:
- انتظر عنوان URL (تدعم globs بواسطة Playwright):
openclaw browser wait --url "**/dash"
- انتظر حالة التحميل:
openclaw browser wait --load networkidle
- انتظر مسند JavaScript:
openclaw browser wait --fn "window.ready===true"
- انتظر حتى يصبح محدد مرئيًا:
openclaw browser wait "#main"
يمكن دمج هذه:
openclaw browser wait "#main" \
--url "**/dash" \
--load networkidle \
--fn "window.ready===true" \
--timeout-ms 15000
سير عمل التصحيح
عندما يفشل إجراء (مثل "غير مرئي"، "انتهاك الوضع الصارم"، "مغطى"):
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 مخصص للبرمجة النصية وأدوات منظمة. أمثلة:
openclaw browser status --json
openclaw browser snapshot --interactive --json
openclaw browser requests --filter api --json
openclaw browser cookies --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 --json '{"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إذا كنت لا تحتاجه.- لتسجيلات الدخول وملاحظات مكافحة الروبوتات (X/Twitter، إلخ)، انظر تسجيل دخول المتصفح + نشر X/Twitter.
- احتفظ بالبوابة/مضيف العقدة خاصًا (حلقة العودة أو شبكة ذيل فقط).
- نقاط نهاية CDP البعيدة قوية؛ أنفقها واحمها.
مثال على الوضع الصارم (حظر الوجهات الخاصة/الداخلية افتراضيًا):
{
browser: {
ssrfPolicy: {
dangerouslyAllowPrivateNetwork: false,
hostnameAllowlist: ["*.example.com", "example.com"],
allowedHostnames: ["localhost"], // سماح دقيق اختياري
},
},
}
استكشاف الأخطاء وإصلاحها
لمشكلات Linux المحددة (خاصة snap Chromium)، انظر استكشاف أخطاء المتصفح وإصلاحها.