无法使用Firefox的remotewebdriver和gecko驱动程序SessionNotCreatedException创建新的远程会话

时间:2018-11-12 07:49:54

标签: selenium selenium-webdriver selenium-grid geckodriver gecko

我在使用GeckoDriver将Selenium Webdriver与firefox连接时遇到问题。

我的Firefox版本是-Mozilla Firefox 52.8.1

pom.xml

 <properties>
    <selenium.version>3.3.0</selenium.version>
</properties>

    <!-- Selenium -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>${selenium.version}</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
    <version>${selenium.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
        <version>${selenium.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>${selenium.version}</version>
    </dependency>

启动中心的命令-

 /data1/jdk-8u131-linux-x64/jdk1.8.0_131/bin/java -jar $BUILD_REPOSITORY/org/seleniumhq/seleniuselenium-server-standalone/3.141.5/selenium-server-standalone-3.141.5.jar -role hub -port 4444

启动节点的命令-

 /usr/java64/jre1.8.0_181-amd64/bin/java -Dwebdriver.gecko.driver=/usr/g/ctuser/geckodriver -jar selenium-server-standalone-3.141.5.jar -role node -huhttp://3.57.51.87:4444/grid/register -host 3.231.15.68

GeckoDriver-geckodriver-v0.15.0-linux64.tar.gz

测试代码-

 public static void main(String[] args) {
    System.setProperty("webdriver.gecko.driver", "/export/data1/selenium/geckodriver");
    DesiredCapabilities firefox = DesiredCapabilities.firefox();
    firefox.setBrowserName("firefox");
    firefox.setPlatform(Platform.UNIX);
    RemoteWebDriver remoteDriver = new RemoteWebDriver(firefox);
    remoteDriver.get("http://localhost:7005/"); 
    System.out.println(remoteDriver.getTitle());
    remoteDriver.quit();
}

获得例外-

  

线程“主”中的异常   org.openqa.selenium.SessionNotCreatedException:无法创建新的   远程会话。所需功能=功能{浏览器名称:   firefox,marionette:true,平台:UNIX,版本:}构建信息:   版本:“ 3.141.5”,修订版:“ d54ebd709a”,时间:   '2018-11-06T11:58:47'系统信息:主机:'liblab8.site',IP:   '3.231.15.68',操作系统名称:'Linux',os.arch:'amd64',操作系统版本:   '3.0.101-0.47.106.35.1.15690.0.PTF-default',java.version:'1.8.0_181'   驱动程序信息:driver.version:未知命令持续时间或超时:0   毫秒   sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)     在   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     在   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     在java.lang.reflect.Constructor.newInstance(Constructor.java:423)     在   org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)     在   org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)     在   org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:363)     在   org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:113)     在   org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)     在   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)     在   org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)     在   org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)     在   org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:158)     在   org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:148)     在com.ge.test.Test1.main(Test1.java:16)上由以下原因引起:   org.openqa.selenium.SessionNotCreatedException:无法创建新的   远程会话。所需功能=功能{浏览器名称:   firefox,marionette:true,平台:UNIX,版本:}构建信息:   版本:“ 3.141.5”,修订版:“ d54ebd709a”,时间:   '2018-11-06T11:58:47'系统信息:主机:'liblab8.site',IP:   '3.231.15.68',操作系统名称:'Linux',os.arch:'amd64',操作系统版本:   '3.0.101-0.47.106.35.1.15690.0.PTF-default',java.version:'1.8.0_181'   驱动程序信息:driver.version:未知构建信息:版本:'3.3.0',   修订:'b526bd5b41',时间:'2017-03-07 19:26:04 +0000'系统信息:   主机:“ ctwdof067.am.health.ge.com”,IP:“ 3.57.51.87”,操作系统名称:   'Linux',os.arch:'amd64',os.version:'3.0.101-0.40-default',   java.version:'1.8.0_131'驱动程序信息:driver.version:在以下位置未知   org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:87)     在   org.openqa.selenium.grid.session.remote.RemoteSession $ Factory.performHandshake(RemoteSession.java:147)     在   org.openqa.selenium.grid.session.remote.ServicedSession $ Factory.apply(ServicedSession.java:161)     在   org.openqa.selenium.remote.server.ActiveSessionFactory.lambda $ apply $ 12(ActiveSessionFactory.java:180)     在java.util.stream.ReferencePipeline $ 3 $ 1.accept(未知源)在   java.util.stream.ReferencePipeline $ 11 $ 1.accept(来源未知)   java.util.stream.ReferencePipeline $ 2 $ 1.accept(来源未知)   java.util.Spliterators $ ArraySpliterator.tryAdvance(未知源)   java.util.stream.ReferencePipeline.forEachWithCancel(未知源)     在java.util.stream.AbstractPipeline.copyIntoWithCancel(未知   来源)java.util.stream.AbstractPipeline.copyInto(未知来源)     在java.util.stream.AbstractPipeline.wrapAndCopyInto(未知来源)     在java.util.stream.FindOps $ FindOp.evaluateSequential(未知源)     在java.util.stream.AbstractPipeline.evaluate(未知源)在   java.util.stream.ReferencePipeline.findFirst(未知源),位于   org.openqa.selenium.remote.server.ActiveSessionFactory.apply(ActiveSessionFactory.java:183)     在   org.openqa.selenium.remote.server.NewSessionPipeline.lambda $ null $ 2(NewSessionPipeline.java:66)     在java.util.stream.ReferencePipeline $ 3 $ 1.accept(未知源)在   java.util.stream.ReferencePipeline $ 2 $ 1.accept(来源未知)   java.util.Collections $ 2.tryAdvance(未知源)   java.util.stream.ReferencePipeline.forEachWithCancel(未知源)     在java.util.stream.AbstractPipeline.copyIntoWithCancel(未知   来源)java.util.stream.AbstractPipeline.copyInto(未知来源)     在java.util.stream.AbstractPipeline.wrapAndCopyInto(未知来源)     在java.util.stream.FindOps $ FindOp.evaluateSequential(未知源)     在java.util.stream.AbstractPipeline.evaluate(未知源)在   java.util.stream.ReferencePipeline.findFirst(未知源),位于   org.openqa.selenium.remote.server.NewSessionPipeline.lambda $ createNewSession $ 3(NewSessionPipeline.java:69)     在java.util.stream.ReferencePipeline $ 3 $ 1.accept(未知源)在   java.util.stream.ReferencePipeline $ 3 $ 1.accept(来源未知)   java.util.stream.ReferencePipeline $ 3 $ 1.accept(来源未知)   java.util.stream.DistinctOps $ 1 $ 2.accept(来源未知)   java.util.stream.ReferencePipeline $ 2 $ 1.accept(来源未知)   java.util.stream.ReferencePipeline $ 3 $ 1.accept(来源未知)   java.util.stream.ReferencePipeline $ 2 $ 1.accept(来源未知)   java.util.stream.Streams $ StreamBuilderImpl.tryAdvance(未知源)     在java.util.stream.Streams $ ConcatSpliterator.tryAdvance(未知   来源)   java.util.stream.ReferencePipeline.forEachWithCancel(未知源)     在java.util.stream.AbstractPipeline.copyIntoWithCancel(未知   来源)java.util.stream.AbstractPipeline.copyInto(未知来源)     在java.util.stream.AbstractPipeline.wrapAndCopyInto(未知来源)     在java.util.stream.FindOps $ FindOp.evaluateSequential(未知源)     在java.util.stream.AbstractPipeline.evaluate(未知源)在   java.util.stream.ReferencePipeline.findFirst(未知源),位于   org.openqa.selenium.remote.server.NewSessionPipeline.createNewSession(NewSessionPipeline.java:72)     在   org.openqa.selenium.remote.server.commandhandler.BeginSession.execute(BeginSession.java:65)     在   org.openqa.selenium.remote.server.WebDriverServlet.lambda $ handle $ 0(WebDriverServlet.java:235)     在java.util.concurrent.Executors $ RunnableAdapter.call(未知   源)位于java.util.concurrent.FutureTask.run(未知源)位于   java.util.concurrent.ThreadPoolExecutor.runWorker(未知源),位于   java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源)   java.lang.Thread.run(未知来源)

集线器控制台-

  

01:47:49.231信息[RequestHandler.process]-获得创建请求的请求   新会话:Capabilities {browserName:firefox,marionette:true,   平台:UNIX,版本:} 01:47:49.232信息[TestSlot.getNewSession]   -尝试在测试槽{server:CONFIG_UUID = e18d691a-1d36-4b44-8526-777d4443d078,   seleniumProtocol = WebDriver,marionette = true,browserName = firefox,   maxInstances = 5,platformName = LINUX,platform = LINUX}

节点控制台-

  

01:43:34.137信息[ActiveSessionFactory.apply]-功能为:{
  “ browserName”:“ firefox”,“ marionette”:true,“ platform”:“ UNIX”,   “ version”:“”} 01:43:34.137信息   [ActiveSessionFactory.lambda $ apply $ 11]-匹配的工厂   org.openqa.selenium.grid.session.remote.ServicedSession $ Factory   (提供者:org.openqa.selenium.firefox.GeckoDriverService)   1542008614143 geckodriver INFO收听127.0.0.1:43589   1542008614199 mozprofile :: profile INFO使用配置文件路径   /tmp/rust_mozprofile.bGje3sR6MQxe   1542008614199 geckodriver :: marionette信息启动浏览器   / usr / bin / firefox和args []   1542008614201 geckodriver :: marionette INFO连接到木偶上   本地主机:56293 1542008615126木偶信息在端口56293上侦听   NPP_GetValue()NPP_GetValue()NPP_GetValue()NPP_GetValue()

我不明白这里发生了什么。请帮助

0 个答案:

没有答案