4

Cucumber、webrat、selenium を使用して Web アプリケーションをテストしています。「I should see "something"」を使用して、変更を確認します。ただし、多くの場所では、検証対象のテキストが非表示から表示に変わるだけです (これは、それ自体またはその祖先の 1 つから「非表示」クラスを削除したことが原因である可能性があります)。この場合、上記のテストは実際には変更を検証しません。「response.should_not have_tag("div#myId.hidden")」を使用しようとしていますが、機能しません。これをテストするための推奨される方法は何ですか?

環境: キュウリ 0.3.11、セレン クライアント 1.2.17、webrat 0.6.0

ありがとうございました。

4

3 に答える 3

5

これらの場合、次の 2 つのカスタム ステップを使用します。

Then /^the element matched by "([^\"]*)" should be visible$/ do |locator|
  selenium.should be_visible(locator)
end

Then /^the element matched by "([^\"]*)" should not be visible$/ do |locator|
  selenium.should_not be_visible(locator)
end

これらを step_definitions/ ディレクトリ下の Ruby ファイルに入れます。

したがって、あなたの場合、Then I should see "something" use Then の代わりに、 "something" に一致する要素が visible になるはずです。

于 2009-12-31T18:17:55.303 に答える
3

代わりに have_selector("div#myId.hidden") を使用すると機能しますか?

于 2009-12-31T18:18:18.483 に答える
1

受け入れられたソリューションは、次の環境では機能しません: Rails (3.0.0)、webrat (0.7.3) selenium-client (1.2.18)、cucumber (0.10.)

回答で提供されている例を使用して、機能するソリューションは次のとおりです。

Then /^the element matched by "([^\"]*)" should be visible$/ do |locator|
  selenium.is_visible(locator).should be_true
end

Then /^the element matched by "([^\"]*)" should not be visible$/ do |locator|
  selenium.is_visible(locator).should_not be_true
end
于 2011-01-28T00:55:50.330 に答える