2017-02-21 11 views
1

Seleniumを使用してJava 7からBrowserStackLocalのインスタンスを実行しようとしています。BrowserStackLocal:ソースコードからBrowserStackLocalバイナリを実行する

BrowserStackLocal.exe --key <pass_key> 

しかし、その代わりのを:私は、Windows 10

私はあなたがJavaでBrowserStackLocalを使用している場合、あなたはcmd.exeの中に次のコード行を実行する必要があることを承知していますし、それが開いているを使用していますそれを外部で実行すると、コードからコマンドラインを開くことができます。

別のマシンでBrowserStackコードも実行していますので、上記のコマンドを相対的に呼び出すことができます(絶対パスは使用しないでください)。

だから私はこのコードを実行している((browserStackLocalPath)はパスキーBrowserStackLocal実行可能オブジェクトと(キー)の名前です):

// Initializing desired capabilities. 
DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setCapability("browserstack.local", "true"); 
caps.setCapability("browser", "Chrome"); 
caps.setCapability("browser_version", "50.0"); 
caps.setCapability("os", "Windows"); 
caps.setCapability("os_version", "7"); 

// Initializing command line parameters... 
CommandLine cmdLine = new CommandLine("cmd.exe"); 
cmdLine.addArgument(browserStackLocalPath); 
cmdLine.addArgument("--key"); 
cmdLine.addArgument(key); 

DefaultExecutor executor = new DefaultExecutor(); 
exitValue = executor.execute(cmdLine); 

RemoteWebDriver webDriver = new RemoteWebDriver(new 
    URL(browserStackURL), caps); 

...とこれは単にWebDriverExceptionをもたらしました:

org.openqa.selenium.WebDriverException: [browserstack.local] is set to true but local testing through BrowserStack is not connected. (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 870 milliseconds 
Build info: version: 'unknown', revision: 'unknown', time: 'unknown' 
System info: host: 'rchen-PC', ip: '192.168.11.105', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.7.0_80' 
Driver info: org.openqa.selenium.remote.RemoteWebDriver 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:158) 

何が不足しているでしょうか?

答えて

1

エラーは、ローカルテスト接続が確立される前にテストが開始されたことを示します。接続を確立するには数秒(5-10)かかります。 executeコマンドを実行した後、10秒間のスリープ(Thread.sleep(10000);)を追加することをお勧めします。

また、ここで利用できるBrowserStackLocalのJavaバインディング(https://github.com/browserstack/browserstack-local-java)を試すこともできます。これは、ローカルテストバイナリをプログラム的に管理するのに役立ちます。

関連する問題