gpt4 book ai didi

symfony - Behat/Mink 与 Selenium 2 次抛出 "Could not open connection"

转载 作者:行者123 更新时间:2023-12-02 23:09:40 26 4
gpt4 key购买 nike

我已经开始使用 Behat、Mink Extension、Selenium 2 和 Symfony 编写验收测试。我已按照说明进行操作,可以在此处查看:http://extensions.behat.org/mink/

如果我想用“./bin/behat”开始我的第一个功能,它会说:

christian@christian-VirtualBox:/var/www/wiglee$ ./bin/behat 
Feature: User Registration
In order to use ProjectNameHere
As a user
I should be able to register

@javascript
Scenario: User Registration # features/user.registration.feature:7
Given I register as "test@test.com" # InheritedFeatureContext::registerAs()
Could not open connection
And I logout # InheritedFeatureContext::logout()

1 scenario (1 failed)
2 steps (1 skipped, 1 failed)

我启动了 selenium 服务器,输出告诉我连接应该没问题:

信息:收到创建新 session 的请求:{platform=ANY、browserVersion=8、browserName=firefox、deviceType=tablet、name=Behat test、selenium-version=2.31.0、browser=firefox ,deviceOrientation=portrait,version=8,max-duration=300}

我如何启动 Selenium Hub:

java -jar ./selenium-server-standalone-2.39.0.jar -role hub

我如何添加 Selenium 节点(本地和主机之间没有“.”):

java -jar ./selenium-server-standalone-2.39.0.jar -role 节点-hub http://local.host:4444/grid/register

这是我的 behat.yml:

default:
context:
parameters:
browser: firefox
class: 'InheritedFeatureContext'
extensions:
SensioLabs\Behat\PageObjectExtension\Extension: ~
Behat\MinkExtension\Extension:
base_url: 'http://localhost/nameofproject/web/app_dev.php'
selenium2: ~
default_session: 'selenium2'

# No context:
no_context:
paths:
bootstrap: 'NON_EXISTING_FOLDER'
filters:
tags: '~@javascript'

# Context based on inheritance:
inheritance:
context:
class: 'InheritedFeatureContext'

# Context based on traits:
traits:
paths:
bootstrap: 'features/php54_bootstrap'
context:
class: 'TraitedFeatureContext'

# Context based on subcontexting:
subcontexts:
context:
class: 'SubcontextedFeatureContext'

这是详细输出:

Given I register as "test@test.com" # InheritedFeatureContext::registerAs()
exception 'WebDriver\Exception\UnknownError' with message 'Error forwarding the new session Empty pool of VM for setup {platform=ANY, browserVersion=8, browserName=firefox, deviceType=tablet, name=Behat test, selenium-version=2.31.0, browser=firefox, deviceOrientation=portrait, version=8, max-duration=300}' in vendor/instaclick/php-webdriver/lib/WebDriver/Exception.php:157
Stack trace:
#0 vendor/instaclick/php-webdriver/lib/WebDriver/AbstractWebDriver.php(140): WebDriver\Exception::factory(13, 'Error forwardin...')
#1 vendor/instaclick/php-webdriver/lib/WebDriver/WebDriver.php(76): WebDriver\AbstractWebDriver->curl('POST', '/session', Array, Array)
#2 vendor/behat/mink-selenium2-driver/src/Behat/Mink/Driver/Selenium2Driver.php(260): WebDriver\WebDriver->session('firefox', Array)
#3 vendor/behat/mink/src/Behat/Mink/Session.php(62): Behat\Mink\Driver\Selenium2Driver->start()
#4 vendor/behat/mink/src/Behat/Mink/Mink.php(114): Behat\Mink\Session->start()
#5 vendor/sensiolabs/behat-page-object-extension/src/SensioLabs/Behat/PageObjectExtension/Context/PageFactory.php(71): Behat\Mink\Mink->getSession()
#6 vendor/sensiolabs/behat-page-object-extension/src/SensioLabs/Behat/PageObjectExtension/Context/PageObjectContext.php(27): SensioLabs\Behat\PageObjectExtension\Context\PageFactory->createPage('Registration')
#7 features/bootstrap/InheritedFeatureContext.php(27): SensioLabs\Behat\PageObjectExtension\Context\PageObjectContext->getPage('Registration')
#8 [internal function]: InheritedFeatureContext->registerAs('cbergau86@gmail...')
#9 vendor/behat/behat/src/Behat/Behat/Definition/Annotation/Definition.php(155): call_user_func_array(Array, Array)
#10 vendor/behat/behat/src/Behat/Behat/Tester/StepTester.php(157): Behat\Behat\Definition\Annotation\Definition->run(Object(InheritedFeatureContext))
#11 vendor/behat/behat/src/Behat/Behat/Tester/StepTester.php(126): Behat\Behat\Tester\StepTester->executeStepDefinition(Object(Behat\Gherkin\Node\StepNode), Object(Behat\Behat\Definition\Annotation\Given))
#12 vendor/behat/behat/src/Behat/Behat/Tester/StepTester.php(95): Behat\Behat\Tester\StepTester->executeStep(Object(Behat\Gherkin\Node\StepNode))
#13 vendor/behat/gherkin/src/Behat/Gherkin/Node/AbstractNode.php(42): Behat\Behat\Tester\StepTester->visit(Object(Behat\Gherkin\Node\StepNode))
#14 vendor/behat/behat/src/Behat/Behat/Tester/ScenarioTester.php(148): Behat\Gherkin\Node\AbstractNode->accept(Object(Behat\Behat\Tester\StepTester))
#15 vendor/behat/behat/src/Behat/Behat/Tester/ScenarioTester.php(87): Behat\Behat\Tester\ScenarioTester->visitStep(Object(Behat\Gherkin\Node\StepNode), Object(Behat\Gherkin\Node\ScenarioNode), Object(InheritedFeatureContext), Array, false)
#16 vendor/behat/gherkin/src/Behat/Gherkin/Node/AbstractNode.php(42): Behat\Behat\Tester\ScenarioTester->visit(Object(Behat\Gherkin\Node\ScenarioNode))
#17 vendor/behat/behat/src/Behat/Behat/Tester/FeatureTester.php(88): Behat\Gherkin\Node\AbstractNode->accept(Object(Behat\Behat\Tester\ScenarioTester))
#18 vendor/behat/gherkin/src/Behat/Gherkin/Node/AbstractNode.php(42): Behat\Behat\Tester\FeatureTester->visit(Object(Behat\Gherkin\Node\FeatureNode))
#19 vendor/behat/behat/src/Behat/Behat/Console/Command/BehatCommand.php(150): Behat\Gherkin\Node\AbstractNode->accept(Object(Behat\Behat\Tester\FeatureTester))
#20 vendor/behat/behat/src/Behat/Behat/Console/Command/BehatCommand.php(128): Behat\Behat\Console\Command\BehatCommand->runFeatures(Object(Behat\Gherkin\Gherkin))
#21 vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php(241): Behat\Behat\Console\Command\BehatCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(881): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(191): Symfony\Component\Console\Application->doRunCommand(Object(Behat\Behat\Console\Command\BehatCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 vendor/behat/behat/src/Behat/Behat/Console/BehatApplication.php(68): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(121): Behat\Behat\Console\BehatApplication->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 vendor/behat/behat/bin/behat(32): Symfony\Component\Console\Application->run()
#27 {main}

Next exception 'Behat\Mink\Exception\DriverException' with message 'Could not open connection' in vendor/behat/mink-selenium2-driver/src/Behat/Mink/Driver/Selenium2Driver.php:262
Stack trace:
#0 vendor/behat/mink/src/Behat/Mink/Session.php(62): Behat\Mink\Driver\Selenium2Driver->start()
#1 vendor/behat/mink/src/Behat/Mink/Mink.php(114): Behat\Mink\Session->start()
#2 vendor/sensiolabs/behat-page-object-extension/src/SensioLabs/Behat/PageObjectExtension/Context/PageFactory.php(71): Behat\Mink\Mink->getSession()
#3 vendor/sensiolabs/behat-page-object-extension/src/SensioLabs/Behat/PageObjectExtension/Context/PageObjectContext.php(27): SensioLabs\Behat\PageObjectExtension\Context\PageFactory->createPage('Registration')
#4 features/bootstrap/InheritedFeatureContext.php(27): SensioLabs\Behat\PageObjectExtension\Context\PageObjectContext->getPage('Registration')
#5 [internal function]: InheritedFeatureContext->registerAs('cbergau86@gmail...')
#6 vendor/behat/behat/src/Behat/Behat/Definition/Annotation/Definition.php(155): call_user_func_array(Array, Array)
#7 vendor/behat/behat/src/Behat/Behat/Tester/StepTester.php(157): Behat\Behat\Definition\Annotation\Definition->run(Object(InheritedFeatureContext))
#8 vendor/behat/behat/src/Behat/Behat/Tester/StepTester.php(126): Behat\Behat\Tester\StepTester->executeStepDefinition(Object(Behat\Gherkin\Node\StepNode), Object(Behat\Behat\Definition\Annotation\Given))
#9 vendor/behat/behat/src/Behat/Behat/Tester/StepTester.php(95): Behat\Behat\Tester\StepTester->executeStep(Object(Behat\Gherkin\Node\StepNode))
#10 vendor/behat/gherkin/src/Behat/Gherkin/Node/AbstractNode.php(42): Behat\Behat\Tester\StepTester->visit(Object(Behat\Gherkin\Node\StepNode))
#11 vendor/behat/behat/src/Behat/Behat/Tester/ScenarioTester.php(148): Behat\Gherkin\Node\AbstractNode->accept(Object(Behat\Behat\Tester\StepTester))
#12 vendor/behat/behat/src/Behat/Behat/Tester/ScenarioTester.php(87): Behat\Behat\Tester\ScenarioTester->visitStep(Object(Behat\Gherkin\Node\StepNode), Object(Behat\Gherkin\Node\ScenarioNode), Object(InheritedFeatureContext), Array, false)
#13 vendor/behat/gherkin/src/Behat/Gherkin/Node/AbstractNode.php(42): Behat\Behat\Tester\ScenarioTester->visit(Object(Behat\Gherkin\Node\ScenarioNode))
#14 vendor/behat/behat/src/Behat/Behat/Tester/FeatureTester.php(88): Behat\Gherkin\Node\AbstractNode->accept(Object(Behat\Behat\Tester\ScenarioTester))
#15 vendor/behat/gherkin/src/Behat/Gherkin/Node/AbstractNode.php(42): Behat\Behat\Tester\FeatureTester->visit(Object(Behat\Gherkin\Node\FeatureNode))
#16 vendor/behat/behat/src/Behat/Behat/Console/Command/BehatCommand.php(150): Behat\Gherkin\Node\AbstractNode->accept(Object(Behat\Behat\Tester\FeatureTester))
#17 vendor/behat/behat/src/Behat/Behat/Console/Command/BehatCommand.php(128): Behat\Behat\Console\Command\BehatCommand->runFeatures(Object(Behat\Gherkin\Gherkin))
#18 vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php(241): Behat\Behat\Console\Command\BehatCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(881): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(191): Symfony\Component\Console\Application->doRunCommand(Object(Behat\Behat\Console\Command\BehatCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 vendor/behat/behat/src/Behat/Behat/Console/BehatApplication.php(68): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(121): Behat\Behat\Console\BehatApplication->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 vendor/behat/behat/bin/behat(32): Symfony\Component\Console\Application->run()
#24 {main}

这是我的composer.json:

"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.4.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.3.*",
"symfony/swiftmailer-bundle": "2.3.*",
"symfony/monolog-bundle": "2.3.*",
"sensio/distribution-bundle": "2.3.*",
"sensio/framework-extra-bundle": "2.3.*",
"sensio/generator-bundle": "2.3.*",
"incenteev/composer-parameter-handler": "~2.0",
"friendsofsymfony/rest-bundle": "dev-master",
"friendsofsymfony/user-bundle": "~2.0@dev",
"jms/serializer-bundle": "dev-master",
"behat/symfony2-extension": "*",
"behat/mink-extension": "*",
"behat/mink-browserkit-driver": "*",
"behat/mink-selenium2-driver": "*",
"behat/mink-goutte-driver": "*",
"phpunit/phpunit": "3.7.*",
"sensiolabs/behat-page-object-extension": "*",
"jms/i18n-routing-bundle": "1.1.0",
"knplabs/knp-menu-bundle": "v1.1.2",
"friendsofsymfony/message-bundle": "dev-master"
},

最佳答案

我最近遇到了同样的问题,并设法让它与 selenium grid 一起工作。

我的案例中的问题与 Mink 发送的默认功能有关。集线器尝试找到合适的节点来运行,该节点将接受请求的功能。就我而言,问题是浏览器版本。当我将其设置为空字符串时,它终于起作用了:

# behat.yml
default:
extensions:
Behat\MinkExtension\Extension:
base_url: 'http://localhost/'
browser_name: phantomjs
selenium2:
wd_host: http://127.0.0.1:4444/wd/hub
capabilities:
version: ''

解决方案最初发布于:Running Behat in parallel with Selenium grid

关于symfony - Behat/Mink 与 Selenium 2 次抛出 "Could not open connection",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com