Playwright Java عبر CDP: تعيين وكيل على سياق متصفح جديد
اتصل بنقطة نهاية CDP في Chromium ثم أنشئ سياقًا مهيأً بوكيل؛ أبقِ اتصال التحكم ومسار الخروج الخاص بالمتصفح البعيد منفصلين.
للمتصفح البعيد مسارَان للشبكة: اتصال التحكم الذي تفتحه Java بخدمة المتصفح، وطلبات المتصفح إلى المواقع. اضبط المسار الثاني على السياق الذي تنشئه.
لخدمة Chromium تكشف نقطة نهاية CDP وتسمح بإنشاء سياقات جديدة:
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.Proxy;
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().connectOverCDP(cdpEndpoint);
try {
var options = new Browser.NewContextOptions().setProxy(
new Proxy("http://proxy.example:8080")
.setUsername(proxyUser)
.setPassword(proxyPassword));
try (BrowserContext context = browser.newContext(options)) {
context.newPage().navigate("https://www.example.org/");
}
} finally {
browser.close();
}
}
cdpEndpoint هو نقطة النهاية الحالية التي توفرها خدمة المتصفح. رمز المصادقة والبروتوكول الخاص به مستقلان عن حساب الوكيل الأمامي.
اتصالات CDP مقصورة على Chromium. نقطة النهاية ببروتوكول Playwright تستخدم connect بدلًا من ذلك؛ وتغيير لاحقة URL دون التحقق من بروتوكول الخدمة ليس تحويلًا موثوقًا.
يجب أن يكون الوكيل قابلًا للوصول من مضيف المتصفح البعيد. مستمع الاسترجاع المحلي على جهاز Java ليس متاحًا هناك تلقائيًا. كما أن إعداد السياق الجديد لا يعيد تهيئة سياق افتراضي موجود مسبقًا ولا اتصال WebSocket الخاص بـ Java.