2016-12-26 5 views
0

Ruby/Capybaraでは、単一の検索クエリで複数(2つ)のロケータ(css)を検索しようとしましたが、自動的に両方を検索して、ページ上にあるロケータでアクションを実行することがわかりました。 EX- find("css1","css2").set "ABC"ルビーカピバラで単一の検索を使用して複数のロケータを検索するにはどうすればよいですか?

私は、スクリプトを実行中に、実行時にそれがロケータの両方を検索し、ページ上に存在する1のアクションを実行することを観察しました。

しかし、私はxpathを使って同じロジックを試してみましたが、要素が見つからないというエラーや無効なセレクタ(1つのxpathはページにあります)をスローしません。 ex- find(:xpath,"xpath1","xpath2").set "ABC"

誰でも、ルビーカピバラのxpathでもどうやってやることができますか?

+0

どのように一致する要素を返します。これは: '見つける(:のxpath、 "xpath1 | xpath2")。' "ABC" を設定 – har07

答えて

0

find("css1","css2").set "ABC"の例では、 "css2"引数が渡されても実際には何も実行されません。現在のバージョンのCapybaraでは、実際には未使用のパラメータに関する警告が表示されます。それはCSS1やCSS2のいずれかに一致する項目を検索しますグループ化コンマを使用していますので、どのように動作することは

find("css1, css2").set("ABC") 

だろう。 XPathでは、これをunion演算子で行うことができます。 XPath union演算子を使用についてxpath1またはxpath2

find(:xpath, "xpath1 | xpath2").set("ABC") 
関連する問題