Php selenium 2的Behat无法连接到本地主机
我正在尝试在selenium环境中设置我的行为测试。现在我从dockers开始学习selenium 这是我的docker-compose.yml配置:Php selenium 2的Behat无法连接到本地主机,php,symfony,selenium,behat,Php,Symfony,Selenium,Behat,我正在尝试在selenium环境中设置我的行为测试。现在我从dockers开始学习selenium 这是我的docker-compose.yml配置: hub: image: selenium/hub ports: - "4444:4444" chrome: image: selenium/node-chrome links: - hub 我的behat.yml配置好了: default: suites: default:
hub:
image: selenium/hub
ports:
- "4444:4444"
chrome:
image: selenium/node-chrome
links:
- hub
我的behat.yml配置好了:
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),我得到了一个错误:
无法打开连接:http POST to的参数为:{“desiredCapabilities”:{“tags”:[“cli”,“PHP7.0.15-1+deb.sury.org~trusty+1”],“browser”:“firefox”,“ignoreZoomSetting”:false,“name”:“Behat功能套件”,“browserName”:“firefox”}
无法连接到本地主机端口4444:连接被拒绝(Behat\Mink\Exception\DriverException)
当我上车时,我会:
{“status”:13,“value”:{“message”:“Session[(null externalkey)]不可用,并且不在最近1000个终止的会话中。\n活动会话为[],“class”:“org.openqa.grid.common.exception.GridException”,“stackTrace”:[{“fileName”:“ActiveTestSessions.java”,“className”:“org.openqa.grid.internal.ActiveTestSessions”,“methodName”:“getExistingSession”,“lineNumber”:110},{“fileName”:“Registry.java”,“className”:“org.openqa.grid.internal.Registry”,“methodName”:“getExistingSession”,“lineNumber”:404},{“fileName”:“RequestHandler.java”,“className”:“org.openqa.grid.web.servlet.handler.RequestHandler”,“methodName”:“getSession”,“lineNumber”:232},{“fileName”:“RequestHandler.java”类名“:”org.openqa.grid.web.servlet.handler.RequestHandler“,”方法名“:”进程“,”行号“:”117},{”文件名“:”DriverServlet.java“,”类名“:”org.openqa.grid.web.servlet.DriverServlet“,”方法名“:”进程“,”行号“:”83},{”文件名“:”DriverServlet.java“,”类名“:”org.openqa.grid.web.servlet.DriverServlet“,”方法名“:”doGet“,”行号:61},{“文件名”:“HttpServlet.java”,“类名”:“javax.servlet.http.HttpServlet”,“方法名”:“服务”,“行号”:687},{“文件名”:“HttpServlet.java”,“类名”:“javax.servlet.http.HttpServlet”,“方法名”:“服务”,“行号”:790},{“文件名”:“ServletHolder.java”,“类名”:“org.seleniumhq.jetty9.servlet.ServletHolder”methodName:“句柄”、“行号”:808},{“文件名”:“ServletHandler.java”,“类名”:“org.seleniumhq.jetty9.servlet.ServletHandler”,“方法名”:“doHandle”,“行号”:587},{“文件名”:“SessionHandler.java”,“类名”:“org.seleniumhq.jetty9.server.SessionHandler”,“方法名”:“doHandle”,“行号”:221},{“文件名”:“ContextHandler.java”“,”className“:”org.seleniumhq.jetty9.server.handler.ContextHandler“,”methodName“:”doHandle“,”lineNumber“:”1127},{”fileName“:”ServletHandler.java“,”className“:”org.seleniumhq.jetty9.servlet.ServletHandler“,”methodName“:”doScope“,”lineNumber“:”515},{”fileName“:”SessionHandler.java“,”className“:”org.seleniumhq.jetty9.server.SessionHandler”,“methodName:“doScope”,“lineNumber:”185},{“fileName:”ContextHandler.java”,“className:”org.seleniumhq.jetty9.server.handler.ContextHandler”,“methodName:”doScope”,“lineNumber:”1061},{“fileName:”ScopedHandler.java”,“className:”org.seleniumhq.jetty9.server.handler.ScopedHandler”,“methodName:”handle”,“lineNumber:”141},{“fileName:”HandlerWrapper.java,“类名”:“org.seleniumhq.jetty9.server.handler.HandlerWrapper”,“方法名”:“句柄”,“行号”:97},{“文件名”:“server.java”,“类名”:“org.seleniumhq.jetty9.server.server”,“方法名”:“句柄”,“行号”:499},{“文件名”:“HttpChannel.java”,“类名”:“org.seleniumhq.jetty9.server.HttpChannel”,“方法名”:“句柄”“,”lineNumber“:310},{”fileName“:”HttpConnection.java“,”className“:”org.seleniumhq.jetty9.server.HttpConnection“,”methodName“:”onFillable“,”lineNumber“:257},{”fileName“:”AbstractConnection.java“,”className“:”org.seleniumhq.jetty9.io.AbstractConnection$2“,”methodName“:”run“,”lineNumber“,”540},{”fileName“:”QueuedThreadPool.java“,”className:”“org.seleniumhq.jetty9.util.thread.QueuedThreadPool”,“方法名”:“runJob”,“lineNumber”:635},{“fileName”:“QueuedThreadPool.java”,“className”:“org.seleniumhq.jetty9.util.thread.QueuedThreadPool$3”,“方法名”:“run”,“lineNumber”:555},{“fileName”:“thread.java.lang.thread”,“方法名”:“run”,“lineNumber”:745}}”
我想这是behat的配置有问题,但我不确定,因为我刚刚开始使用behat和selenium。如果有人知道问题出在哪里,我将非常乐意得到帮助。您缺少
wd\u主机
和功能
选项
尝试以下方法:
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
此外,您的集线器还需要能够访问运行测试的本地主机
首先,尝试签出服务器的apache/nginx等,查看是否从selenium机器获得任何访问权限
类似于tail-f/var/log/apache/access.log
或者无论你在哪里保存文件……如果你什么都没有得到,那么显然selenium没有访问你的机器
另一种方法是,部署代码(例如测试环境),然后可以在behat.yml
中执行以下操作:
Behat\MinkExtension:
base_url: http://my_test_host.com
好的,我使用了第一种方法。看起来效果不错。但仍然不够,现在我遇到了错误:
无法打开连接:错误转发新的虚拟机会话空池,用于安装功能[{browser=firefox,name=Behat功能套件,browserName=chrome,ignorezoomset=false,tags=[cli,php7.0.15-1+deb.sury.org~trusty+1]](Behat\Mink\Exception\DriverException)
我编辑了我的帖子…你在服务器上收到selenium的点击了吗?否则,请尝试在behat.yml
中将base\u url
的值编辑到base\u url:http://whtaeverr_your_php_container_is_called_indocker_compose
我检查了日志,似乎我的测试甚至没有达到selenium。我添加了base\u url:http://localhost
到mybehat.yml
。但仍然得到相同的错误。相关: