BrowserMob কেবল সেই ট্রাফিকই রেকর্ড করে যা সত্যিই তার listener-এর মধ্য দিয়ে যায়। Selenium ব্রাউজারের পাশে প্রক্সি চালু করলে সেই ব্রাউজার রুটে পড়ে না।

BrowserMob-এর নথিভুক্ত 2.1.5 এমবেডেড API-এর জন্য, বিদ্যমান একটি Java Selenium সেটআপ এই ক্রমটি ব্যবহার করতে পারে:

BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start(0);
try {
    ChromeOptions options = new ChromeOptions();
    options.setProxy(ClientUtil.createSeleniumProxy(proxy));
    WebDriver driver = new ChromeDriver(options);
    try {
        proxy.newHar("example-page");
        driver.get("http://www.example.com/");
        Har capture = proxy.getHar();
        capture.writeTo(new java.io.File("page.har"));
    } finally {
        driver.quit();
    }
} finally {
    proxy.stop();
}

পোর্ট 0 একটি উপলব্ধ পোর্ট চায়। ClientUtil ওই listener থেকে Selenium প্রক্সি সেটিং তৈরি করে। ক্যাপচার নেভিগেশনের আগে শুরু হয় এবং প্রক্সি এখনও পাওয়া যাওয়ার সময়েই নেওয়া হয়।

এই অংশটি ধরে নেয় যে প্রকল্পের BrowserMob, HAR ও Selenium টাইপ আগেই পাওয়া যায়। অনুরোধ বা প্রতিক্রিয়ার বডির বিস্তারিত ক্যাপচার একটি অতিরিক্ত CaptureType পছন্দ। HTTPS-এ হস্তক্ষেপের জন্যও এর উদ্দিষ্ট সার্টিফিকেট-বিশ্বাস ব্যবস্থা দরকার।

দূরবর্তী Grid ব্রাউজারের জন্য, ওই ব্রাউজারের মেশিন থেকে পৌঁছানো যায় এমন ঠিকানা ঘোষণা করুন। টেস্ট রানারে থাকা loopback ঠিকানা সেখানে অন্য মেশিনের loopback বোঝায়।

এটি ব্রাউজারের কনফিগার করা HTTP রুট ক্যাপচার করে। এটি অন্য প্রতিটি বহির্গামী সংযোগ আটকানোর কোনো অপারেটিং-সিস্টেম নিয়ম তৈরি করে না।

সম্পর্কিত নিবন্ধ