Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Selenium 在不同浏览器下运行behat测试_Selenium_Behat_Mink - Fatal编程技术网

Selenium 在不同浏览器下运行behat测试

Selenium 在不同浏览器下运行behat测试,selenium,behat,mink,Selenium,Behat,Mink,我希望在某些浏览器中运行behat测试,因此当我键入类似以下内容时,应在相应的浏览器下运行测试:bin/behat firefox或bin/behat chrome或bin/behat opera。可能吗?如果是这样,我应该如何修改我的yml或其他内容?我之所以需要这样的东西,是因为selenium有时不喜欢基于其版本的某些浏览器 我通读了一遍,但没能把它应用到我的行为上 行为.yml: default: context: class: Football\LeagueBu

我希望在某些浏览器中运行behat测试,因此当我键入类似以下内容时,应在相应的浏览器下运行测试:
bin/behat firefox
bin/behat chrome
bin/behat opera
。可能吗?如果是这样,我应该如何修改我的yml或其他内容?我之所以需要这样的东西,是因为selenium有时不喜欢基于其版本的某些浏览器

我通读了一遍,但没能把它应用到我的行为上

行为.yml

default:
    context:
        class: Football\LeagueBundle\Features\Context\FeatureContext
        parameters:
            output_path: %behat.paths.base%/test/report/behat/output/
            screen_shot_path: %behat.paths.base%/test/report/behat/screenshot/
    extensions:
        Behat\Symfony2Extension\Extension:
            mink_driver: true
            kernel:
                env: test
                debug: true
        Behat\MinkExtension\Extension:
            base_url: 'http://symfony.local/app_test.php/'
            files_path: %behat.paths.base%/test/dummy/
            browser_name: firefox
            goutte: ~
            selenium2: ~
    paths:
        features: %behat.paths.base%/src
        bootstrap: %behat.paths.features%/Context
示例功能

Feature: Visit Home Page
  In order to see hello message
  As a user
  I should be able to visit home page

  #SUCCESS
  @javascript
  Scenario: I visit home page
    When I go to "/"
    Then I should see "Hello Symfony!"

  #FAIL
  @javascript
  Scenario: I visit home page
    When I go to "/"
    Then I should not see "Hello Behat!"

文档一次又一次地糟糕透顶,因此您需要使用配置。我相信有几种方法可以实现这一点,但建议的配置文件方法应该是最简单的。如果我把一切都弄对了,就可以这样做

default:
    context:
        class: Football\LeagueBundle\Features\Context\FeatureContext
        parameters:
            output_path: %behat.paths.base%/test/report/behat/output/
            screen_shot_path: %behat.paths.base%/test/report/behat/screenshot/
    extensions:
        Behat\Symfony2Extension\Extension:
            mink_driver: true
            kernel:
                env: test
                debug: true
        Behat\MinkExtension\Extension:
            base_url: 'http://symfony.local/app_test.php/'
            files_path: %behat.paths.base%/test/dummy/
            browser_name: firefox
            goutte: ~
            selenium2: ~
    paths:
        features: %behat.paths.base%/src
        bootstrap: %behat.paths.features%/Context

chrome:
    extensions:
        Behat\MinkExtension\Extension:
            browser_name: chrome

firefox:
    extensions:
        Behat\MinkExtension\Extension:
            browser_name: firefox     
我不是100%确定,但我记得Behat将默认配置文件与其他配置文件合并,所以希望您不必复制所有内容,如果这不起作用,那么请尝试定义完整的配置文件

另外,看看,您可以定义每个概要文件包含哪些标记,如果您只想在某些浏览器中运行某些测试,这可能非常有用

要运行它,请指定配置文件:

$ behat -p firefox
$ behat -p chrome

当“selenium不喜欢基于其版本的某些浏览器”时,会发生什么?为什么发布的github链接不适用于您的案例?我同意上面所说的……Selenium 2.41.0版停止在我的Ubuntu和Mac上运行Firefox,所以我要么更新它,要么改用Chrome ddriver。我也不是说GitHub链接不适用于我的案例。我的意思是如何将其应用于我的behat.yml文件。我将更新OP以消除误解;我想用一种方式修改我的yml,我可以运行behat来使用特定的浏览器。它工作得非常好,但是我现在对cromedriver有自己的问题。selenium 2.43.1说“chromedriver:无法执行二进制文件”。我对它做了
chmod+x
chmod 777
,但运气不好。我会接受你的回答,因为它解决了实际问题。感谢您尝试更新您的chrome,这可能就是原因。我使用的是2.43.0,没有问题(在Mac上)。我使用的是ubuntu版本的chromedriver。刚刚下载了Mac版本,工作正常。我有时会迷惑自己,因为我在家里使用Ubuntu,在工作中使用Mac!PS:
brew安装selenium服务器独立chromedriver
+
selenium服务器-Dwebdriver.chrome.driver=/usr/local/bin/chromedriver