2017-08-28 5 views
1

のブラウザのために、別のエラーが動作しないと私はbrowsermobを使用したい:私は、例えば異なるブラウザのために同じコードを使用してFirefoxの:browsermob私はセレンとJavaを使用して

 BrowserMobProxyServer proxyServer = new BrowserMobProxyServer(); 
     proxyServer.start(); 
     proxyServer.setHarCaptureTypes(CaptureType.getAllContentCaptureTypes()); 
     proxyServer.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT); 
     Proxy proxy = ClientUtil.createSeleniumProxy(proxyServer); 
     DesiredCapabilities dccFirefox = DesiredCapabilities.firefox(); 
     dccFirefox.setCapability(CapabilityType.PROXY, proxy); 
     this.driver = new FirefoxDriver(dccFirefox); 

Firefoxでエラーが発生:normaly

org.openqa.selenium.SessionNotCreatedException: InvalidArgumentError: Expected [object Undefined] undefined to be an integer 
Build info: version: '3.5.1', revision: '9c21bb67ef', time: '2017-08-17T15:26:08.955Z' 
System info: host: 'BEN-PLL-ST1-HP', ip: '192.168.1.9', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_141' 
Driver info: driver.version: FirefoxDriver 
remote stacktrace: stack backtrace: 
    0:   0x4bb74f - <no info> 
    1:   0x4bbea9 - <no info> 
    2:   0x43ce8d - <no info> 
    3:   0x44ce14 - <no info> 
    4:   0x44944a - <no info> 
    5:   0x4203e1 - <no info> 
    6:   0x407dc7 - <no info> 
    7:   0x6d95b9 - <no info> 
    8:   0x4173a7 - <no info> 
    9:   0x6d38b3 - <no info> 
    10:   0x775559cd - BaseThreadInitThunk 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57) 
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104) 
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$24(ProtocolHandshake.java:360) 
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) 
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source) 
    at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source) 
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) 
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source) 
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) 
    at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source) 
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source) 
    at java.util.stream.ReferencePipeline.findFirst(Unknown Source) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:363) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:137) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:254) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:137) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:103) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:137) 

クロームオープンしますがページは、コンソールで、オープンすることはできませんが、エラーが発生します。

Failed to load resource: net::ERR_EMPTY_RESPONSE 
net::ERR_PROXY_CONNECTION_FAILED 

誰かが、なぜこのエラーが任意のアイデアを持っています起こるか?

+0

に対応するために、コードを更新し、あなたはセレングリッド上でテストを実行していますか? – Murthi

+0

いいえ、キュウリ –

+0

を持つセレンのwebdriverのみcreateSeleniumProxyによって作成されたオブジェクトは、セレングリッドで使用されます。 – Murthi

答えて

1

この問題を引き起こしているGeckodriverとの未解決の問題があります。 https://github.com/mozilla/geckodriver/issues/764

あなたはコードの下に使用して回避策を得ることができます。

編集-1

信頼できない設定が変更されたgeckodriver以来。だから、同じ

import net.lightbody.bmp.BrowserMobProxyServer; 
import net.lightbody.bmp.client.ClientUtil; 
import net.lightbody.bmp.core.har.Har; 
import net.lightbody.bmp.proxy.CaptureType; 
import org.openqa.selenium.Proxy; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.firefox.FirefoxProfile; 
import org.openqa.selenium.remote.DesiredCapabilities; 

import java.io.File; 
import java.io.IOException; 

/** 
* Created by tarun.lalwani on 5/31/17. 
*/ 
public class TestApp { 


    public static void main(String [] args) { 

     BrowserMobProxyServer proxyServer = new BrowserMobProxyServer(); 
     proxyServer.start(); 
     proxyServer.setHarCaptureTypes(CaptureType.getAllContentCaptureTypes()); 
     proxyServer.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT); 
     Proxy proxy = ClientUtil.createSeleniumProxy(proxyServer); 
     FirefoxProfile profile = new FirefoxProfile(); 
     DesiredCapabilities cap = new DesiredCapabilities(); 
     cap.setAcceptInsecureCerts(true); 
     String host = proxy.getHttpProxy().split(":")[0]; 
     int port = Integer.parseInt(proxy.getHttpProxy().split(":")[1]); 

     profile.setPreference("network.proxy.type", 1); 
     profile.setPreference("network.proxy.http", host); 
     profile.setPreference("network.proxy.http_port", port); 
     profile.setPreference("network.proxy.ssl", host); 
     profile.setPreference("network.proxy.ssl_port", port); 

     profile.setPreference("acceptInsecureCerts", true); 
     cap.setCapability(FirefoxDriver.PROFILE, profile); 
     FirefoxDriver driver = new FirefoxDriver(cap); 

     proxyServer.newHar("mysite"); 

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

     Har har = proxyServer.getHar(); 
     try { 
      har.writeTo(new File("har.json")); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     driver.quit(); 
    } 
} 

のpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>test1</groupId> 
    <artifactId>test2</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>3.4.0</version> 
    </dependency> 
     <dependency> 
      <groupId>net.lightbody.bmp</groupId> 
      <!-- To use the legacy, Jetty-based implementation, 
       change the artifactId to browsermob-core --> 
      <artifactId>browsermob-core-littleproxy</artifactId> 
      <version>2.1.0-beta-6</version> 
      <scope>test</scope>  </dependency> 
     <dependency> 
      <groupId>net.lightbody.bmp</groupId> 
      <artifactId>browsermob-core-littleproxy</artifactId> 
      <version>2.1.0-beta-5</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

おかげで今私は54.0.1に3.4.0とFirefoxへのverセレンをダウングレードした場合でもhttps://github.com/SeleniumHQ/selenium/issues/4562からエラーが発生します。多分、このコードをchrome/ie/operaや他のライブラリ用に実行するにはどうしたらいいですか? –

+0

あなたはどのサイトを試していますか?私はまた私がgoogle.com –

+0

上でテストするためにFF 54とSelenium 3.4を使用していました。チェックし、それもGoogleで動作します –

関連する問題