0

Behat/Mink を使用して php アプリケーションの受け入れテストを作成していて、奇妙なことがわかりました。JavaScript がオンの場合、Behat は入力フィールドを見つけることができませんが、JavaScript がオフの場合は同じフィールドを見つけます。

正確には、次のシナリオ

Scenario: adding article keywords, no javascript used
 Given I am on "articles/create"
 When I fill in "Articles[title]" with "About all properties"
...

完全に合格します。しかし、上記のシナリオにタグjavascriptを追加するとすぐに

@javascript    
Scenario: adding article keywords
 Given I am on "articles/create"
 When I fill in "Articles[title]" with "About all properties"

失敗し始めます:

When I fill in "Articles[title]" with "About all properties"
# FeatureContext::fillField()
Form field with id|name|label|value "Articles[title]" not found.

その理由は何ですか?

4

1 に答える 1

1

@javascript は、Selenium ドライバーを使用して機能を実行します。Selenium はページをロードするのに時間がかかる場合があります。「I am on ...」の直後に「I wait ...」というステップを追加してみてください。うまくいけば、ロードに時間がかかるのは DOM だけです。

@javascript    
Scenario: adding article keywords
 Given I am on "articles/create"
 Then I wait 1000
 When I fill in "Articles[title]" with "About all properties"
于 2013-09-25T09:26:56.977 に答える