Ich versuche, eine Instanz von BrowserStackLocal aus Java 7 mit Selenium auszuführen. Ich verwende Windows 10.BrowserStackLocal: Ausführen von BrowserStackLocal-Binärcode aus Quellcode
Ich bin mir bewusst, dass, wenn Sie BrowserStackLocal in Java verwenden, müssen Sie die folgende Codezeile in der cmd.exe laufen und haben es öffnen:
BrowserStackLocal.exe --key <pass_key>
Aber statt Wenn ich es extern ausführe, möchte ich die Befehlszeile aus dem Code öffnen können.
Ich führe auch den BrowserStack-Code auf unterschiedlichen Maschinen, so dass ich den obigen Befehl relativ aufrufen kann (und keinen absoluten Pfad verwenden).
So bin ich diesen Code ausgeführt wird ((browserStackLocalPath) ist der Name des BrowserStackLocal ausführbaren Objekts und (keys) ist die Pass-Taste):
// 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);
... und dies hat lediglich in einem WebDriverException resultiert :
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)
Irgendwelche Ideen auf, was möglicherweise fehlt?