我试图在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。如果有人知道出了什么问题,我会非常乐意得到一些帮助。
答案 0 :(得分:0)
您错过了wd_host
和capabilities
选项
尝试类似:
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