当前位置: 首页 > 知识库问答 >
问题:

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

盛建德
2023-03-14

我试图在硒环境中设置我的behat测试。现在我从码头工人开始吃硒,

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

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

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

我得到了我的命令。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到http://localhost:4444/wd/hub/session时引发Curl错误,参数:{“desiredcapabilities”:{“tags”:[“cli”,“php 7.0.15-1+deb.sury.org~trusty+1”],“浏览器”:“Firefox”,“ignorezoomsetting”:false,“name”:“Behat feature suite”,“browsername”:“Firefox”}}

连接到本地主机端口4444失败:连接被拒绝(Behat\mink\Exception\DriverException)

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

{“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”:“getexistingsessions”,“404},{”filename“:”requesthandler.java“,”classname“:”org.openqa.grid.web.servlet.handler.requesthandler“,”methodname“:”getsession“,”lineNumber“:232},{”filename“:”requesthandler.java“,”classname“:”org.openqa.grid.web.servlet.handler.requesthandler“,”classname“:”process“,”lethodname“:”process“,”lethname“:”Umber“:83},{”filename“:”driverservlet.java“,”classname“:”org.openqa.grid.web.servlet.driverservlet“,“methodname”:“doget”,“linenumber”:61},{“filename”:“httpservlet.java”,“classname”:“javax.servlet.http.httpservlet”,“methodname”:“service”,“linenumber”:687},{“filename”:“httpservlet.java”,“classname”:“javax.servlet.http.httpservlet”,“methodname”:“service”,“methodname”:“service”,“linenumber”:790},{“filename”:“servletholder.java”:808},{“filename”:“servlethandler.java”,“classname”:“org.seleniumhq.jetty9.servlet.servlethandler”,“methodname”:“dohandler”,“lineNumber”:587},{“filename”:“sessionhandler.java”,{“filename”:“sessionhandler.java”,{“classname”:“org.seleniumhq.jetty9.server.handler.contc”exthandler“,”methodname“:”dohandle“,”lineNumber“:1127},{”filename“:”servlethandler.java“,”classname“:”org.seleniumhq.jetty9.servlet.servlethandler“,”methodname“:”doscope“,”lineNumber“:515},{”filename“:”sessionhandler.java“,”classnam“e“:”org.seleniumhq.jetty9.server.session.sessionhandler“,”methodname“:”doscope“,”linenumber“:185},{”filename“:”contexthandler.java“,”classname“:”org.seleniumhq.jetty9.server.handler.contexthandler“,”classname“:”org.seleniumhq.jetty9.server.handler.contexthandler“,”methodname“:”handle“,”linenumber“:141},{”filename“:”handlerwrapper.java“,”classname“:”org.seleniumhq.jetty9.server.handler.handlerwrapper“,”methodname“:”handle“,”lineNumber“:97},{”filename“:”server.java“,”classname“:”classname“:”org.seleniumhq.jetty9.server.server.server.server“,”lineNumber“:”lerver.java“,”methodname“:”server.java“,”classname 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“,”methodname“:”runjob“,”lineNumber“:635},{”filename“:”queuedthreadpool.jueedthreadpool“,”lineNumber“:”jueedthreadpool“,”lineNumber“:”jueedthreadpool“,”“:”Run“,”LineNumber“:745}]}}

我想这是behat的配置问题,但我不确定,因为我刚刚开始使用behat和Selenium。如果有人知道哪里出了问题,我会很高兴得到一些帮助。

共有1个答案

桓信鸥
2023-03-14

您缺少wd_host功能选项

试着做一些类似的事情:

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
 类似资料:
  • 试图连接一个简单的JMX监控。托管应用程序和监控工具位于同一台服务器上。当试图连接一个错误 00:30:55610致命http-8080-6 SiteListener:makeJmxConnection:99-java.io。IOException:检索RMIServer存根失败:javax.naming。ServiceUnavailableException[根异常为java.rmi.Conne

  • 问题内容: 我正在尝试使用PyMySQL连接到本地主机上的MySQL: 但是(在Python 2.7和Python 3.2上)我得到了错误: socket.error:[Errno 111]连接被拒绝 pymysql.err.OperationalError:(2003年,“无法连接到’localhost’(111)上的MySQL服务器”) 我确定mysqld正在运行,因为我可以使用command

  • 这让我很困惑。 我有一个运行nginx-php-fpm的本地开发设置,我在其中使用.localhost作为每个项目的工作域。昨天Chrome停止了与本地域的合作。相反,它只是返回被拒绝的连接。DevTools将错误显示为net::ERR\u CONNECTION\u RESET。 访问http://127.0.0.1工作,但当然不适用于本地项目。 Safari继续与.localhost一起工作。

  • 我试图测试一些普罗米修斯度量,通过推动到本地push网关。push网关docker映像正在运行,当我使用:http://localhost:9091/metrics时,我可以在浏览器中看到它 然而,当我运行python脚本来推送指标时,我得到一个404错误。 错误:urllib2。HTTPError:HTTP错误404:未找到 推送地址中有我遗漏的东西吗?我已尝试添加/度量,但存在相同的错误

  • 我试图连接到一个名为的数据库。所有凭据都位于PHP文件名中,格式为 我正试图用这个连接到数据库 我得到这个错误: 注意:第6行的未定义变量:DB_HOST in/home/content/06/8274306/html/beta/mysuperscript.php 注意:未定义变量:第6行 /home/content/06/8274306/html/beta/mysuperscript.phpDB

  • 问题内容: 由于wamp服务器,我试图将我的android应用程序连接到本地主机url,但它不起作用。我的目标是获取json数据并解析这些数据。对于我的测试,我使用的是设备而不是模拟器,并且使用AndroidManifest.xml中的权限: 我的网址看起来像这样: 我试过了 : 但是到目前为止,它从未起作用: 然后我尝试了在互联网上找到的json url测试:http : //headers.j