java - 尝试通过 Selenium Grid 独立 jar 3.14 在 LINUX 上创建 FIREFOX 驱动程序时如何解决 SessionNotCreatedException 异常

标签 java selenium selenium-webdriver webdriver selenium-grid

尝试通过 Selenium 独立 jar 3.14 创建驱动程序时,出现 org.openqa.selenium.SessionNotCreatedException 异常。

我使用以下命令来启动集线器和节点

1) java -jar selenium-server-standalone-3.141.59.jar -role hub

2) java -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.xxx.xx.xxx:4444/grid/register -端口 5556 -浏览器 browserName=chrome,maxInstance=3 -浏览器 browserName=firefox,maxInstance=3

尝试通过以下代码创建驱动程序

System.setProperty("webdriver.gecko.driver",
System.getProperty("user.dir") + "/drivers/" +"geckodriver");
DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setBrowserName("firefox");
caps.setPlatform(Platform.LINUX);
caps.setVersion("64.0");
driver = new RemoteWebDriver(new URL("http://192.xxx.xx.xxx:4444/wd/hub"),caps);

我遇到以下异常:

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=firefox, moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=null}, platform=LINUX}], required capabilities = Capabilities [{}]
Build info: version: '3.3.1', revision: '5234b325d5', time: '2017-03-10 09:10:29 +0000'
System info: host: 'HP-ProBook-440-G5', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-43-generic', java.version: '1.8.0_181'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:158)
    at com.jio.web.base.TestBase.initDriver(TestBase.java:290)
    at com.jio.web.base.Setup.assignDriver(Setup.java:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:514)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:215)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:178)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
    at org.testng.TestRunner.privateRun(TestRunner.java:782)
    at org.testng.TestRunner.run(TestRunner.java:632)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
    at org.testng.SuiteRunner.run(SuiteRunner.java:268)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.run(TestNG.java:1064)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

最佳答案

由于您的Selenium 网格节点正在使用geckodriverSelenium Grid Hub进行通信,因此您需要启动Selenium网格节点geckodriver的绝对位置如下:

java -Dwebdriver.gecko.driver=/path/to/geckodriver -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.xxx.xx.xxx:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3

关于java - 尝试通过 Selenium Grid 独立 jar 3.14 在 LINUX 上创建 FIREFOX 驱动程序时如何解决 SessionNotCreatedException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54197174/

相关文章:

java - 存储整数集以检查某个集合是否已被提及

java - 如何使用 Selenium/Java 验证页面中元素的存在

javascript - 如何使用 selenium-webdriver 正确添加 cookie?

python - 使用 Selenium 登录 Wells Fargo

java - 将 Java 变量传递给 jQuery 函数的 JavascriptExecutor 参数

android - Ruby Selenium 无法从安卓图片库中选择图片

java - 在maven fork进程执行期间只运行一次代码?

JavaFX : Consuming REST service and displaying the data in front-end

java - 如何实现版本控制客户端说svn作为java web服务?

python - 无法从网页中选择正确的 div