1

BrowserMobProxy を使用して Webdriver からのリクエストを傍受しようとしています。

しかし、以下のコードは機能していません。サイト google.com を開くことができません。

「Internet Explorer ではサイトを開くことができません」と表示されます。

    proxyServer = new ProxyServer(9101);
    proxyServer.start();

    proxyServer.setCaptureHeaders(true);
    proxyServer.setCaptureContent(true);

    proxyServer.addRequestInterceptor(new RequestInterceptor() {
        @Override
        public void process(BrowserMobHttpRequest request, Har har) {
            System.out.println("From Process method");
        }
    });

    seleniumProxy = proxy.seleniumProxy();

    seleniumProxy.setHttpProxy("localhost:9101");

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
    capabilities.setCapability("ie.setProxyByServer", true);

    File file = new File("C:\\path\\IEDriverServer.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

    driver = new InternetExplorerDriver(capabilities);
    driver.get("www.google.com");

webdrviver から google.com にアクセスしようとすると、次のエラーが表示されます。

From Process method Nov 09, 2014 2:07:58 AM net.lightbody.bmp.proxy.util.Log info INFO: java.net.UnknownHostException: www.google.com when requesting http://www.google.com/

4

1 に答える 1

2

Browsermob は、通常の Java/ネイティブ DNS 解決の代わりに xbill DNS を使用するため、VPN ではうまく機能しない可能性があります。最新の browsermob スナップショットでは、システム プロパティbmp.allowNativeDnsFallbackを true に設定することでネイティブ DNS フォールバックを有効にできます。

System.setProperty("bmp.allowNativeDnsFallback", "true");
proxyServer = new ProxyServer(9101);
proxyServer.start();

browsermob github ページで最新のスナップショットを取得できます。

于 2014-11-15T20:21:52.153 に答える