0

TL; DR:Behat + Mink(@javascriptw / Sahi)シナリオでは、Sahiはにテキストを入力し<input>ますが、ページのJavascriptはSahiによって入力されたものを取得できません

アップデート:

解決策:Sahiの最後のバージョンをダウンロードすると問題が修正されました。バグが何であれ、修正されました。

コンテクスト

Behat + Minkで何ができるかをチームに示すために、小さなデモWebサイトを構築しています。正方形のサイズを入力してこの正方形の周囲長を取得できるページがいくつかあります。1つのページは単純な古いPOSTメソッドを使用しており、別のページはJavascriptを使用して周囲長を計算しています

「JSページ」のURL:http: //behatdemo.widop.com/js-square

私のチームにjavascriptのテストが可能であることを示すために、私はSahiをMinkドライバーとして使用していますが、機能していないようです。6ユーザーが正方形の辺の長さとして入力し、周囲長として取得するシナリオを作成しました24([githubのファイルへのリンク](https://github.com/clemherreman/behatdemo/blob/master/features/js_square.feature#L7 ))

@javascript
Scenario: Inputting a valid side size
Given I am on "/js-square"
When I fill in "side" with "6"
And I press "Calculate"
And I wait for the result to appear
And I wait a little
Then I should see "Perimeter (using js): 24 cm"

注:And I wait a littleは、SahiFirefoxウィンドウに表示されている内容を確認できるようにするために10秒待機するデバッグ手順です。

問題

周囲長を計算するjavascriptのスニペットは、6Sahiによって入力されたものを取得できないようです。コードは次のとおりです([githubのファイルへのリンク](https://github.com/clemherreman/behatdemo/blob/master/website/views/js-square.twig#L27))

を持つ代わりに"Perimeter (using js): 24 cm"、私はを取得し"Perimeter (using js): Error cm"ます。

(function($) {
  $('form').submit(function(e) {
    e.preventDefault();
    // #side is a <input type="text"> tag, where user input a square side length
    var side = parseFloat(jQuery('#side').val()) || NaN;
    var perimeter = side*4.0 || 'Error';
    $('#sidebar').text('Perimeter (using js): '+perimeter+ ' cm');
  });
})(jQuery);

デバッグ/アイデア

調査の結果、空の文字列が返されることが判明しましたjQuery('#side').val()。そのため、境界ではなく「エラー」が表示されます。 シナリオ中にSahiが入力したものをJavascriptが取得できないようです。

私はこれにかなりこだわっています、私は何かが欠けているように感じます。

リンク

バージョン

  • Behat:2.1.2
  • ミンク:1.1.1
  • サヒ:3.5
  • PHP:5.3.6
4

1 に答える 1

0

私はあなたのエラーを再現することができませんでした、すべてが私のBehat / Mink / Sahiセットアップでうまくいきました: http ://screencast.com/t/2rTHo7jj

シナリオに合格

私はOSXでBehat2.1.2とMink1.1.1を搭載したSahi3.5を使用しています最新バージョンChromePHP5.3.8-ZS5.5.0

Chromeでテストを実行してみてください:

default:
  context:
    parameters:
      base_url: YOURBASEURL
      browser: chrome
于 2011-11-09T09:44:57.017 に答える