1

私はカピバラのテストを実行していますが、次のテストに行き詰まっています:

page.all("input").each do |s|
    if s.value == "E"
        choose(s)
    end
end
click_button "Save answers"
end

500 以上のラジオ ボタンがあり、それぞれに AE の値が割り当てられています。エラーが発生し続けます:

 Unable to find radio button #<Capybara::Element tag="input" path="[path to element]"> 
 (Capybara::ElementNotFound)

「入力」タグが見つからないのはなぜですか? それはうまくいったはずです。を試しましたが、あいまいなエラーfindfind返されます (技術的には 500 件の一致が必要です)。

カピバラがすべての入力ボタンを通過し、値が E のボタンを選択できるようにしたい.

何か助けはありますか?

4

3 に答える 3

2

私は実際に自分の問題を発見しました:

その行choose(s)は、私に問題を与えていた行でした。 sはラジオ ボタンであり、Capybara は実際のラジオ ボタン自体ではなく、ラジオの ID を期待していました。

s[:id]の代わりに渡すとs、うまくいきました!

于 2013-05-19T16:59:23.557 に答える
0

あなたは試すことができます:

all('input[value=E]').map(&:choose)

正確には覚えていませんが、うまくいかない場合は、クリックしてみてください:

all('input[value=E]').map(&:click)

それでもうまくいかない場合は、セレクター内で二重引用符を使用してみてください。

all('input[value="E"]').map(&:click)

それもうまくいくはずeachです。

しかし、@Billy Chan が言ったことを思い出してください。

于 2013-05-17T19:06:39.687 に答える