2

Capybara を使用して、コンテンツによって (任意のタイプの) 要素を見つけることはできますか?

理想的には、次のようなコードを書きたいと思います。

find('Copy from a paragraph')    # finds the p element
find('Copy from a link')         # finds a element
find('Copy from a button')       # finds button element

4

4 に答える 4

1

誰もがこれに答えるかもしれません

desired_element = nil
all('p').each do |elem|
  if elem.text == 'Copy from a paragraph'
    desired_element = elem
  end
end

必要に応じて「p」を「a」または「input」に置き換えます。

お役に立てれば

于 2013-11-13T17:31:51.250 に答える
1

タイプを指定せずに要素を見つける方法について、非常によく似た質問に対する回答が見つかりました。私の場合、最初に親セレクターを定義してから、このセレクター内の要素をテキストのみで見つけます。

答えは最終的なものではありませんが、うまくいきます。このステップで必要なのは、正規表現を使用するよりも完全一致をうまく処理することだけです。

search = find(:css, #{parent_selector}).find(:css, '*', :text => /\A#{element_text}\z/)
于 2015-05-07T16:11:32.910 に答える
1

あなたが好きな解決策があるとは思いません。次の HTML を検討してください。

<div>
  <p>
    <span>hello</span>
  </p>
</div>

これら 3 つの要素はすべて、テキストを「含んでいます」hello。すべての包含要素 ( bodyhtmlなど) が一致します。なぜこれをしたいのかを理解するのを手伝ってもらえますか?

于 2013-11-14T00:57:51.400 に答える