selenium 2无法连接到localhost

时间:2017-03-20 13:20:32

标签: php symfony selenium behat

我试图在selenium环境中设置我的behat测试。现在我从码头工人那里得到了硒,

这就是我的docker-compose.yml配置:

hub:
  image: selenium/hub
  ports:
    - "4444:4444"

chrome:
  image: selenium/node-chrome
  links:
    - hub

我得到了我的behat.yml configurated:

default:
    suites:
        default:
            paths:
                features: 'tests/features'
                bootstrap:  'tests/features/bootstrap'
            contexts:
                - FeatureContext: ~
    extensions:
        Behat\Symfony2Extension: ~
        Behat\MinkExtension:
            base_url:  http://localhost
            selenium2: ~

当我用@javascript启动我的测试时(我想这个启动selenium env)我得到错误:

  

无法打开连接:使用params:{“desiredCapabilities”:{“tags”:[“cli”,“PHP 7.0.15-1 + deb.sury。)将http POST抛出到http://localhost:4444/wd/hub/session的卷曲错误。 org~trusty + 1“],”browser“:”firefox“,”ignoreZoomSetting“:false,”name“:”Behat feature suite“,”browserName“:”firefox“}}

     

无法连接到localhost端口4444:连接被拒绝(Behat \ Mink \ Exception \ DriverException)

当我上http://localhost:4444/wd/hub/sessions时,我得到:

  

{“status”:13,“value”:{“message”:“会话[(null externalkey)]不可用且不在最后1000个终止的会话中。\ n活动会话为[]”,“class” : “org.openqa.grid.common.exception.GridException”, “堆栈跟踪”:[{ “文件名”: “ActiveTestSessions.java”, “类名”: “org.openqa.grid.internal.ActiveTestSessions”, “方法名” : “getExistingSession”, “LINENUMBER”:110},{ “文件名”: “Registry.java”, “类名”: “org.openqa.grid.internal.Registry”, “方法名”: “getExistingSession”, “LINENUMBER” :404},{ “文件名”: “RequestHandler.java”, “类名”: “org.openqa.grid.web.servlet.handler.RequestHandler”, “方法名”: “的getSession”, “LINENUMBER”:232}, { “文件名”: “RequestHandler.java”, “类名”: “org.openqa.grid.web.servlet.handler.RequestHandler”, “方法名”: “处理”, “LINENUMBER”:117},{ “文件名” : “DriverServlet.java”, “类名”: “org.openqa.grid.web.servlet.DriverServlet”, “方法名”: “处理”, “LINENUMBER”:83},{ “文件名”: “DriverServlet.java” , “类名”:“org.openqa.grid.web.servlet.DriverServle T”, “方法名”: “的doGet”, “LINENUMBER”:61},{ “文件名”: “HttpServlet.java”, “类名”: “javax.servlet.http.HttpServlet”, “方法名”: “服务” “LINENUMBER”:687},{ “文件名”: “HttpServlet.java”, “类名”: “javax.servlet.http.HttpServlet”, “方法名”: “服务”, “LINENUMBER”:790},{”文件名 “:” ServletHolder.java”, “类名”: “org.seleniumhq.jetty9.servlet.ServletHolder”, “方法名”: “处理”, “LINENUMBER”:808},{ “文件名”: “ServletHandler.java” , “类名”: “org.seleniumhq.jetty9.servlet.ServletHandler”, “方法名”: “doHandle”, “行号”:587},{ “文件名”: “SessionHandler.java”, “类名”:“组织。 seleniumhq.jetty9.server.session.SessionHandler “ ”方法名“: ”doHandle“, ”LINENUMBER“:221},{ ”文件名“: ”ContextHandler.java“, ”类名“:” org.seleniumhq.jetty9.server。 handler.ContextHandler”, “方法名”: “doHandle”, “LINENUMBER”:1127},{ “文件名”: “ServletHandler.java”, “类名”: “org.seleniumhq.jetty9.servlet.ServletHandler”, “方法名” : “doScope”, “LINENUMBER”:515},{ “文件名”: “SessionHandler.java”,“类名称 “:” org.seleniumhq.jetty9.server.session.SessionHandler “ ”方法名“: ”doScope“, ”行号“:185},{ ”文件名“: ”ContextHandler.java“, ”类名“:” 组织。 seleniumhq.jetty9.server.handler.ContextHandler “ ”方法名“: ”doScope“, ”LINENUMBER“:1061},{ ”文件名“: ”ScopedHandler.java“, ”类名“:” org.seleniumhq.jetty9.server。 handler.ScopedHandler “ ”方法名“: ”处理“, ”LINENUMBER“:141},{ ”文件名“: ”HandlerWrapper.java“, ”类名“: ”org.seleniumhq.jetty9.server.handler.HandlerWrapper“,”方法名 “:” 处理 “ ”LINENUMBER“:97},{ ”文件名“: ”Server.java“, ”类名“: ”org.seleniumhq.jetty9.server.Server“, ”方法名“: ”处理“,” LINENUMBER “:499},{” 文件名 “:” HttpChannel.java “ ”类名“: ”org.seleniumhq.jetty9.server.HttpChannel“, ”方法名“: ”处理“, ”LINENUMBER“:310},{”文件名 “:” HttpConnection.java”, “类名”: “org.seleniumhq.jetty9.server.HttpConnection”, “方法名”: “onFillable”, “LINENUMBER”:257},{ “文件名”: “AbstractConnection.java” , “类名”: “org.seleniumhq.jetty9.io.AbstractConnection $ 2”,“会见hodName “:” 运行”, “LINENUMBER”:540},{ “文件名”: “QueuedThreadPool.java”, “类名”: “org.seleniumhq.jetty9.util.thread.QueuedThreadPool”, “方法名”: “runJob” “行号”:635},{ “文件名”: “QueuedThreadPool.java”, “类名”: “org.seleniumhq.jetty9.util.thread.QueuedThreadPool $ 3”, “方法名”: “运行”, “行号”: 555},{ “文件名”: “Thread.java”, “类名”: “java.lang.Thread中”, “方法名”: “运行”, “LINENUMBER”:745}]}}

我认为这是配置behat的问题,但我不确定,因为我刚刚开始使用behat和selenium。如果有人知道出了什么问题,我会非常乐意得到一些帮助。

1 个答案:

答案 0 :(得分:0)

您错过了wd_hostcapabilities选项

尝试类似:

default:
    suites:
        default:
            paths:
                features: 'tests/features'
                bootstrap:  'tests/features/bootstrap'
            contexts:
                - FeatureContext: ~
    extensions:
        Behat\Symfony2Extension: ~
        Behat\MinkExtension:
            selenium2:
                browser: "chrome"
                wd_host: http://hub:4444/wd/hub

此外,您的集线器需要能够访问您的localhost .....测试正在运行。

首先,尝试检查服务器的apache / nginx等,看看你是否从selenium机器获得任何访问/访问。

类似于tail -f /var/log/apache/access.log

或保存文件的任何地方....如果什么都没有,那么显然selenium无法访问您的计算机

一种不同的方法是,部署代码作为测试环境的示例,然后您可以在behat.yml中执行某些操作:

    Behat\MinkExtension:
        base_url:  http://my_test_host.com