当Behat

时间:2018-02-05 11:36:30

标签: php selenium firefox behat

我想测试一下现有网站的几个功能,即使我开始习惯Behat及其环境,我仍然坚持一些基本的东西,比如使用网络浏览器测试javascript在几页上。

我正在使用Behat“项目”进行测试,这意味着我创建了一个composer.json文件,然后运行composer install然后bin/behat --init,并开始创建我的功能文件。

我在作曲家依赖项中加入了selenium2,在场景顶部加了一个@javascript标记,下载了一个独立的selenium服务器文件,但是当Firefox被触发时,我得到的只是一个白页。

如果我理解的话,这个问题可能是因为我的配置被覆盖,或者因为Firefox 57+没有得到很好的支持。

我不知道是不是这样,所以这里是我的不同文件:

behat.yml

default:
  suites:
    default:
      contexts:
        - FeatureContext
        - Drupal\DrupalExtension\Context\DrupalContext
        - Drupal\DrupalExtension\Context\MinkContext
        - Drupal\DrupalExtension\Context\MessageContext
        - Drupal\DrupalExtension\Context\DrushContext
  gherkin:
     cache: ~
  extensions:
    Behat\MinkExtension:
      base_url: http://www.spheria.rec
      goutte: ~
      selenium2:
        wd_host: http://localhost:4444/wd/hub
    Drupal\DrupalExtension:
      blackbox: ~

5-特征​​actualite.feature

Feature: Gestion globale des actualités

   Scenario: Arrivée sur le site, connexion et vérification de bonne connexion
        Given I am an anonymous user
        And I go to "/"
        And I should see "Se connecter"
        And I should see "Nom d'utilisateur"
        And I should see "Mot de passe"
        When I fill in "admin@spheria.com" for "name"
        And I fill in "admin" for "pass"
        And I press "Se connecter"
        Then I should get a 200 HTTP response
        And the url should match "/dashboard"
        And I should see "Tableau de bord"

    @javascript
    Scenario: Liste globale des actualités
          Given I am on "/"
          And I fill in "admin@spheria.com" for "name"
          And I fill in "admin" for "pass"
          And I press "Se connecter"
          Then I should get a 200 HTTP response
          And the url should match "/dashboard"
          When I go to "/view/actualite"
          Then I should get a 200 HTTP response
          And I should see "Liste Actualités"

FeatureContext.php

/**
 * Defines application features from the specific context.
 */
class FeatureContext extends RawDrupalContext implements SnippetAcceptingContext {

  /**
   * FeatureContext constructor.
   * Initializes context.
   *
   * Every scenario gets its own context instance.
   * You can also pass arbitrary arguments to the
   * context constructor through behat.yml.
   */
  public function __construct() {

  }

  // Here are my custom functions

}

然而,在浏览seleniumhq问题时,我可以看到人们设法让他们的Firefox 58工作。我想它应该可以工作,但我读到的大量文档是关于用PHP直接编写测试,这对我来说是无用的,因为我使用Behat / Gherkin。

我也试过使用壁虎,但到目前为止还没有运气。

修改 这是我用来启动selenium的命令,geckodriver是根文件夹

java -DWebdriver.gecko.driver="geckodriver.exe" -jar selenium.jar 

This is the link to Selenium's trace,因为它太大了,无法放在这里。

这是Behat的追踪:

  

@javascript场景:Liste globaledesactualités

     

鉴于我在“/”

     

无法打开连接:Firefox启动时等待45秒。

     

构建信息:版本:'3.8.1',修订版:'6e95a6684b',时间:'2017-12-01T19:05:32.194Z'

     

系统信息:主机:'64006A38B5DE',ip:'192.168.33.1',os.name:'Windows 8.1',os.arch:'amd64',os.version:'6.3',java.version:' 1.8.0_111'   驱动程序信息:driver.version:unknown(Behat \ Mink \ Exception \ DriverException)

我错过了什么?提前谢谢

0 个答案:

没有答案