、私たちのコード内の典型的な行は次のようになります劇的に変化する可能性があります。私は最高のこの急激な変化のために準備する方法をcss-modulesを使ってサイトでCapybara findersを調整するには?</p> <p><code>find('.edit-icon').click</code></p> <p>私たちは、私たちのプロジェクトでは、CSS-モジュールを使用する我々の方法にしていると私は警告してきたそのクラス名:私たちの自動テストで
:かわいいおどけた例では、(あなたがページを閲覧するとき)そのクラス名に絵文字を使用していますこのサイトのですか?仕様の多くは壊れていると思いますが、私たちのプロジェクトでこの新技術を使ってテストを書くことができないのではないかと心配しています。
にセレクタを変更することができます動作します注意してください.com/jnicklas/capybara/blob/master/lib/capybara/selector.rb - 物事を抽象化して 'find(:edit_button).click'のようにすることができます。しかし、完全な答えは "それは依存している" - なぜあなたは最初にcssクラスを使いましたか? –
私が提供した例では、私のプロジェクト全体で共通しているので、識別テキストやその他の属性では見つからないボタンやその他の要素があります。私はまた、クラス名セレクタを使用して、期待を書いているあいまいさや誤認を避ける傾向があります(たとえば、テキストがある領域から別の領域にジャンプすると予想される場合など)。私たちのプロジェクトが進むにつれて、より具体的な例を提供できることを願っています。クラスは通常、自動化された仕様では使用されませんか?助けてくれてありがとう、トム。 – Phil
はい、クラスはかなり使われていますが、私はそれらを最後の手段として試してみる傾向があります。テキストやその他の属性がない要素は、主な使用例です。私はカスタムセレクタがここで助けることができると述べたように - Capybara.add_selector(:edit_button){css do |ロケータ| '.edit-icon' end} - これはcssを1つの場所に隔離します。クラス名が変更されたら、セレクタを変更して、クラス名がどのように構成されて最終的に –