我想测试一下现有网站的几个功能,即使我开始习惯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)
我错过了什么?提前谢谢