【问题标题】:Symfony2 Selenium Behat base_url not loadedSymfony2 Selenium Behat base_url 未加载
【发布时间】:2016-01-31 18:28:13
【问题描述】:

我正在为 symfony2 中的应用程序设置测试环境,但我遇到了一些错误,我在网上找不到一致的答案...

作曲家json

"require-dev": {
  ...
  "behat/symfony2-extension": "^2.1",
  "behat/mink-browserkit-driver": "^1.3",
  "behat/mink-goutte-driver": "@stable",
  "behat/mink-extension": "@stable",
  "behat/mink-selenium2-driver": "^1.3"
},

behat.yml - 旧的

default:
    extensions:
        Behat\MinkExtension:
            base_url: 'http://myapp.lan/app_test.php/'
            browser_name: firefox
            default_session: selenium2
            goutte: ~
            selenium2: ~
            javascript_session: selenium2

        Behat\Symfony2Extension: ~

behat.yml - 新的

default:
    extensions:
        Behat\Symfony2Extension: ~

        Behat\MinkExtension:
            base_url: http://myapp.lan/app_test.php/
            browser_name: firefox
            sessions:
                goutte:
                    goutte: ~
                selenium2:
                    selenium2: ~
                symfony2:
                    symfony2: ~
            javascript_session: selenium2
    suites:
        site:
            type: symfony_bundle
            bundle: SiteBundle
            mink_session: symfony2
            contexts:
                - MyApp\SiteBundle\Features\Context\FeatureContext

功能

Feature: Test login of users

  @javascript
  Scenario: Login to application
    Given: I am on "/"
      Then I should see "Login"

我正在使用

  • selenium/selenium-server-standalone-2.50.1.jar

  • 在我的操作系统中安装了 Firefox 44 (Linux Mint)

浏览器启动但没有触发 url。

正如您所见,url 输入为空,几秒钟后浏览器因测试失败而关闭。

当我运行echo $this->getSession()->getCurrentUrl(); 我得到about:blank 所以很明显base_url 被忽略了。

如果我手动输入网址,那么一切正常。

我没有安装 VM 或其他东西,只是安装了最新版本的 firefox/chrome 和最新版本的 selenium,这也是我的开发环境。

【问题讨论】:

    标签: java php symfony selenium


    【解决方案1】:

    我可以确认这个示例对我有用。从Installing behat3 with composer.json得到它

    composer.json

    {
        "require-dev": {
            "behat/behat" : "3.0.15",
            "behat/symfony2-extension" : "2.0.0",
            "behat/mink": "1.6.1",
            "behat/mink-extension": "2.0.1",
            "behat/mink-browserkit-driver": "1.2.0",
            "behat/mink-goutte-driver": "1.1.0",
            "behat/mink-selenium2-driver": "1.2.0"
        }
    }
    

    behat.yml

    default:
        extensions:
            Behat\Symfony2Extension: ~
            Behat\MinkExtension:
                base_url: http://myapp.lan/app_test.php
                browser_name: firefox
                sessions:
                    goutte:
                        goutte: ~
                    selenium2:
                        selenium2: ~
                    symfony2:
                        symfony2: ~
        suites:
            backend:
                type: symfony_bundle
                bundle: ApplicationBackendBundle #Change this with your
                mink_session: symfony2
                contexts:
                    - Application\BackendBundle\Features\Context\FeatureContext: #Change this with your
                        param1: hello
                        param2: world
    

    FeatureContext

    namespace Application\BackendBundle\Features\Context;
    
    use Behat\MinkExtension\Context\MinkContext;
    
    class FeatureContext extends MinkContext
    {
        private $param1;
        private $param2;
    
        public function __construct($param1, $param2)
        {
            $this->param1 = $param1;
            $this->param2 = $param2;
        }
    }
    

    小黄瓜

    Feature: Visit pages and see contents
    
      Scenario: I visit home page and see welcome message
        Given I am on "/"
        Then I should see "Welcome to Application!"
    
      Scenario: I visit contact page and see contact message
        Given I am on "/contact"
        Then I should see "Contact me!"
    

    添加

    Selenium 和 Firefox 存在我自己之前遇到过的兼容性问题。如果你谷歌,你会看到类似的帖子。按此顺序尝试:

    1. 试试selenium-server-standalone-2.43.1.jar 版本。 https://selenium-release.storage.googleapis.com/index.html?path=2.43/
    2. 使用 chromedriver 试用 Chrome 浏览器。 Running selenium server standalone and chromedriver

    你真的应该通过http://www.inanzzz.com/index.php/posts/behat来举例。

    【讨论】:

    • 不,它不起作用。问题是浏览器启动但 url 没有填满。如果我手动输入它,那么测试就会运行,它会在 *.feature 中找到我正在搜索的一些文本。是的,浏览器已安装,我可以访问我的应用程序并且我正在使用 behat3
    • 请添加您的功能步骤。
    • 我更新了答案,现在它适用于 Behat3,对我来说效果很好。
    • 这是经典的 Selenium 和 Firefox 兼容性问题。请参阅上面的附加部分。
    • 我今天早上也在尝试第二点,而不是获取数据的网址;。而不是一个网址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多