0

サンプル プロジェクトを使用してBrowserMobを構成し、[ネットワーク] タブのデータを取得しようとしています。しかし、スクリプトを実行すると、「インターネット接続がありません」というメッセージが表示される代わりに、クロムがサイトをロードしません。ここに画像の説明を入力

どんな助けでも大歓迎です:)

以下は構成です。

macOS: 10.12.6

Chrome ブラウザ: 61.0.316

Gradle を使用して依存関係を取得する:

selenium-java: 3.4.0 selenium-server: 3.4.0 browsermob-core: 2.1.4

以下はサンプルコードです。

    // start the proxy
    BrowserMobProxy proxy = new BrowserMobProxyServer();
    proxy.start(0);

    // get the Selenium proxy object
    Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);

    // configure it as a desired capability
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);

    // start the browser up
    System.setProperty("webdriver.chrome.driver", "/Users/abc/Documents/jars/chromedriver");       
    WebDriver driver = new ChromeDriver(capabilities);

    // enable more detailed HAR capture, if desired (see CaptureType for the complete list)
    proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);

    // create a new HAR with the label "google.com"
    proxy.newHar("google.com");

    // open google.com
    driver.get("http://www.google.com");

    // get the HAR data
    Har har = proxy.getHar();

    File harFile = new File("/Users/abc/Documents/Sample.har");
    try {
      har.writeTo(harFile);
    } catch (IOException e) {
      e.printStackTrace();
    }
    driver.quit();

以下は、.har ファイルで取得しているデータです。

{"log":{"version":"1.2","creator":{"name":"BrowserMob Proxy","version":"2.1.4","comment":""},"pages": [{"id":"google.com","startedDateTime":"2017-11-06T17:33:42.007Z","title":"google.com","pageTimings":{"コメント":"" },"コメント":""}],"エントリ":[],"コメント":""}}

インポートステートメント:

import java.io.File;
import java.io.IOException;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import net.lightbody.bmp.BrowserMobProxy;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.CaptureType;
4

3 に答える 3

0

2.1.4 の背後にあるバージョンのブラウザー mob であった POM の再確認を修正しました。次のように変更されました。GitHub で Gradle を使用していることがわかります。

<dependency>
        <groupId>net.lightbody.bmp</groupId>
        <artifactId>browsermob-core</artifactId>
        <version>2.1.5</version>
        <scope>test</scope>
    </dependency>
于 2017-11-08T01:58:45.570 に答える
0

同じ問題が私にも起こりました。検索した結果、プロキシが正常に起動しなかったか、バージョンが適切でないことが原因であることがわかりました。セレン、クロム、BMP のバージョンを更新しました。問題を修正しました。以下は私が持っているバージョンです。クロムのインストールも更新してください。

Chrome ドライバー

        <artifactId>selenium-chrome-driver</artifactId>
        <version>3.4.0</version>

ブラウザ モブ

        <groupId>net.lightbody.bmp</groupId>
        <artifactId>browsermob-core</artifactId>
        <version>2.1.5</version>

セレンのバージョン

        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.7.1</version>

これで問題が解決するはずです。

于 2017-11-08T17:51:34.707 に答える