14

ID、テキスト、タイトルの代わりにクラス名でリンクをたどることは可能ですか?私が持っているとすると(ハハ、キュウリのインサイダー彼?)次のhtmlコード:

<div id="some_information_container">
  <a href="edit" class="edit_button">Translation here</a>
</div>
  • テストで翻訳値を気にする必要があるため、テキストで一致させたくありません
  • ボタンをすべて同じスタイルに見せたいので、CSSクラスを使用します。
  • すべてのリンクにIDを割り当てたくありません。これは、一部のリンクがコンテナとリンククラスによって完全に識別されるためです。

Cucumber / Webratで見逃したことはありますか?または、これをより良い方法で解決するためのアドバイスはありますか?

あなたの助けとよろしくお願いします、

ジョー

編集:私はここでこのトピックについて進行中の興味深い議論を見つけました-今のところ未解決の問題のままのようです。これに対する他の解決策はありますか?

4

5 に答える 5

4

これが私がキュウリでそれをした方法です、それが役立つことを願っています。ステップ定義の#は、CSSが何が起こっているのかを理解するのに役立ちます。

これは、クラス名ではなくIDでのみ機能します

ステップ定義

Then /^(?:|I )should see ([^\"]*) within a div with id "([^\"]*)"$/ do |text, selector|
  # checks for text within a specified div id
  within "##{selector}" do |content|  
    if defined?(Spec::Rails::Matchers)
      content.should contain(text)
    else
      hc = Webrat::Matchers::HasContent.new(text)
      assert hc.matches?(content), hc.failure_message
    end  
  end     
end

特徴

Scenario Outline: Create Project
  When I fill in name with <title>
      And I select <data_type> from data_type
      And I press "Create"
  Then I should see <title> within a div with id "specifications"

Scenarios: Search Terms and Results
   | data_type  | title        |
   | Books      | A Book Title |
于 2010-02-19T17:23:29.563 に答える
3

クラス名が「edit_botton」の要素内でテキストをアサートする方法は次のとおりです。

Then I should see "Translation here" within "[@class='edit_button']"
于 2010-06-02T21:38:54.010 に答える
1

どうfind('a.some-class').clickですか?

于 2012-02-21T09:04:30.037 に答える
0

私はWebRatAPIにあまり詳しくありませんが、DOMルックアップを使用して探しているクラスの参照IDを取得し、それをclick_link関数に渡すのはどうでしょうか。

クラスごとにアイテムを取得するためのJavaScriptへのリンクは次のとおりです。 http://mykenta.blogspot.com/2007/10/getelementbyclass-revisited.html

考えてみると、Javascriptを使用してランダムなIDに変更し、それをクリックするだけではどうでしょうか。

いずれにせよ、それは、名前の質素な議論が解決されるまでgetbyclass関数を含めるまで機能するはずです。

于 2009-11-11T05:25:34.297 に答える
0

have_tagはあなたのために働きますか?

have_tag('a.edit_button')

于 2009-11-24T17:35:13.587 に答える