استكشاف أخطاء المتصفح وإصلاحها (Linux)
المشكلة: “Failed to start Chrome CDP on port 18800”
يفشل خادم التحكم في المتصفح الخاص بـ OpenClaw في تشغيل Chrome/Brave/Edge/Chromium مع الخطأ:السبب الجذري
في Ubuntu (والعديد من توزيعات Linux)، يكون تثبيت Chromium الافتراضي حزمة snap. يتداخل احتواء AppArmor الخاص بـ Snap مع الطريقة التي يشغّل بها OpenClaw عملية المتصفح ويراقبها. يقوم الأمرapt install chromium بتثبيت حزمة بديلة تعيد التوجيه إلى snap:
الحل 1: تثبيت Google Chrome (موصى به)
ثبّت حزمة.deb الرسمية من Google Chrome، فهي ليست معزولة بواسطة snap:
~/.openclaw/openclaw.json):
الحل 2: استخدام Snap Chromium مع وضع الإرفاق فقط
إذا كان لا بد لك من استخدام snap Chromium، فاضبط OpenClaw ليرتبط بمتصفح تم تشغيله يدويًا:- حدّث الإعداد:
- شغّل Chromium يدويًا:
- اختياريًا، أنشئ خدمة مستخدم systemd لبدء Chrome تلقائيًا:
systemctl --user enable --now openclaw-browser.service
التحقق من أن المتصفح يعمل
تحقق من الحالة:مرجع الإعداد
| الخيار | الوصف | الافتراضي |
|---|---|---|
browser.enabled | تمكين التحكم في المتصفح | true |
browser.executablePath | مسار ملف متصفح ثنائي قائم على Chromium (Chrome/Brave/Edge/Chromium) | يُكتشف تلقائيًا (ويُفضّل المتصفح الافتراضي إذا كان قائمًا على Chromium) |
browser.headless | التشغيل دون واجهة رسومية | false |
browser.noSandbox | إضافة العلامة --no-sandbox (مطلوبة لبعض إعدادات Linux) | false |
browser.attachOnly | عدم تشغيل المتصفح، والاكتفاء بالإرفاق بمتصفح موجود | false |
browser.cdpPort | منفذ Chrome DevTools Protocol | 18800 |
المشكلة: “No Chrome tabs found for profile=“user""
أنت تستخدم ملف تعريفexisting-session / Chrome MCP. يمكن لـ OpenClaw رؤية Chrome المحلي،
لكن لا توجد علامات تبويب مفتوحة متاحة للإرفاق بها.
خيارات الإصلاح:
- استخدم المتصفح المُدار:
openclaw browser start --browser-profile openclaw(أو عيّنbrowser.defaultProfile: "openclaw"). - استخدم Chrome MCP: تأكد من أن Chrome المحلي يعمل مع وجود علامة تبويب واحدة مفتوحة على الأقل، ثم أعد المحاولة باستخدام
--browser-profile user.
userخاص بالمضيف فقط. بالنسبة إلى خوادم Linux أو الحاويات أو المضيفين البعيدين، يُفضّل استخدام ملفات تعريف CDP.- يحتفظ
user/ وملفات تعريفexisting-sessionالأخرى بقيود Chrome MCP الحالية: الإجراءات المعتمدة على المراجع، وخطافات رفع ملف واحد، وعدم وجود تجاوزات لمهلة مربعات الحوار، وعدم وجودwait --load networkidle، وعدم وجودresponsebodyأو تصدير PDF أو اعتراض التنزيلات أو الإجراءات الدفعية. - تعيّن ملفات تعريف
openclawالمحليةcdpPort/cdpUrlتلقائيًا؛ لا تضبطهما إلا من أجل CDP البعيد. - تقبل ملفات تعريف CDP البعيدة
http://وhttps://وws://وwss://. استخدم HTTP(S) لاكتشاف/json/version، أو WS(S) عندما تمنحك خدمة المتصفح عنوان socket مباشرًا لـ DevTools.