HAR ファイルと Javascript の実行をキャプチャするために、BrowserMob Proxy (browsermob-proxy-2.0-beta-9) と共にヘッドレス ブラウザーのテストに PhantomJS (com.codeborne:phantomjsdriver:1.2.1) を使用しようとしています。
https(例:https://www.google.com)のURLで機能し、HARを取得します。
ただし、http (例: http://www.google.com ) の場合、BrowserMob ログに次のエラーが表示されます。
INFO 02/02 22:45:03 n.l.b.p.j.h.HttpSer~ - Version Jetty/5.1.x
INFO 02/02 22:45:03 n.l.b.p.j.u.Contain~ - Started HttpContext[/,/]
...
INFO 02/02 22:46:29 n.l.b.p.h.BrowserMo~ - java.net.UnknownHostException: www.google.com when requesting http://www.google.com/
INFO 02/02 22:46:54 n.l.b.p.j.u.Threade~ - Stopping Acceptor ServerSocket[addr=/0.0.0.0,localport=13000]
...
以下は、PhantomJSのセットアップ方法です
public RemoteWebDriver getDriverInstance() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);
//code to get Proxy is below
capabilities.setCapability(CapabilityType.PROXY, getProxyObject());
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "./bin/phantomjs");
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--web-security=no", "--ssl-protocol=any", "--ignore-ssl-errors=yes"});
WebDriver webDriver = new PhantomJSDriver(capabilities);
return (RemoteWebDriver) webDriver;
}
public Proxy getProxyObject() {
Proxy proxy = new Proxy();
//publicIp is localhost for testing purposes.
String proxyLocation = this.getPublicIp() + ":" + this.getBrowserMobProxyPort();
proxy.setHttpProxy(proxyLocation);
proxy.setFtpProxy(proxyLocation);
proxy.setSslProxy(proxyLocation);
return proxy;
}
まだ解決策を探しています。
BrowserMob からこのようなメッセージが表示されるのは正常ですか?
私は、おそらく何かを正しくセットアップしていないか、一部を見逃しています。この問題に直面したことがある人がいて、私を助けてくれたり、解決策を教えてくれたりしたら、素晴らしいことです。いくつかの検索を行いましたが、これを解決する解決策が見つかりませんでした。
また、追加情報が必要な場合はお知らせください。