Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php selenium 2的Behat无法连接到本地主机_Php_Symfony_Selenium_Behat - Fatal编程技术网

Php selenium 2的Behat无法连接到本地主机

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:

我正在尝试在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:
            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
到my
behat.yml
。但仍然得到相同的错误。相关: