يرسل سكربت Selenium بلغة JavaScript أوامر WebDriver إلى الخادم البعيد قبل أن يتمكن متصفح ذلك الخادم من الانتقال إلى أي مكان. إذا كان على اتصال الأوامر أن يعبر بروكسي HTTP، فاضبط بروكسي WebDriver الخاص بـBuilder:

const { Builder, Browser } = require("selenium-webdriver");

const driver = await new Builder()
  .forBrowser(Browser.CHROME)
  .usingServer(gridUrl)
  .usingWebDriverProxy("http://proxy.example.net:8080")
  .build();

‏gridUrl هو خادم Selenium الفعلي أو نقطة نهاية WebDriver المستضافة. بالنسبة إلى نقطة نهاية متاحة للعموم ويُسمح فيها بهذا المسار، توفر قائمة بروكسي HTTP مرشحين لاستخدامهم في usingWebDriverProxy. شغّل المقطع داخل دالة async من نوع CommonJS. أنهِ تشغيل driver عند انتهاء جلسة الاختبار.

يتحكم usingWebDriverProxy في اتصالات HTTP الخاصة بربط JavaScript. وهو لا يضبط قدرة البروكسي في Chrome ولا وسيط تشغيل Chrome.

إذا احتاجت حركة المتصفح أيضاً إلى وسيط، فوفّر خيارات Chrome المقصودة على نحو منفصل. فهذا المتصفح يعمل على الآلة البعيدة، لذا يجب أن تكون نقطة نهاية البروكسي الخاصة به قابلة للوصول هناك. وعنوان loopback على آلة السكربت ليس تلقائياً خدمة loopback متاحة للمتصفح البعيد.

حدّد ما إذا كان الفشل يحدث أثناء إنشاء جلسة WebDriver أم أثناء الانتقال في موقع ويب. فقد ينطوي الفشلان على عملاء شبكة مختلفين وسياسات بروكسي مختلفة.

مقالات ذات صلة