データテーブルのラジオボタンを選択しようとしていますが、問題があります。私は1つのページに表示される唯一のものだから1つのデータテーブル行をフィルタリングすることができます...しかし、私は試したpage.choose
、page.find(<xpath>)
、page.find(<css>)
、私はまた、私は何を試して残っているのか分かりません。データテーブルのラジオボタンを選択できません
残念ながら、これは作業項目なので、すべてを投稿することはできません。私はIDを指定するとラベルをクリックすることができます:
find(:xpath, "//label[@for='approve_row_5']").click
これは実際にラジオボタンを選択しているようには見えません。私は、データ・テーブルには、ここで、とにかく
<td class=" align-middle">
<div class="radio">
<input type="radio" name="approve_deny_row_5" id="approve_deny_row_5_approve" value="person_approve" data-ui-verify-key="test_approve" data-ui-verify-title="2017-07-13 14:59:46 -0400">
<label for="approve_deny_row_5_approve">
<span>Approve</span>
</label>
</div>
<div class="radio">
<input type="radio" name="approve_deny_row_5" id="approve_deny_row_5_deny" value="person_deny" data-ui-verify-key="test_deny" data-ui-verify-title="2017-07-13 14:59:46 -0400" data-ui-verify-url="/irrelevant/stuff">
<label for="approve_deny_row_5_deny">
<span>Deny</span>
</label>
</div>
</td>
濾過された後に2つのラジオボタンのHTMLでフィルタリングした後、私はまた、待ち時間をやってみました
テキストでスパンを見つけてそれをクリックすると考えましたが、実際にはラジオボタンは選択されません。また、私はfind('input[value="test_approve"]').click
経由で特定の値セレクタで検索しようとしましたが、どちらも運がなかった
アイデア?それらはあなたを教えている場合、このために働く必要があります方法は
choose("Approve")
choose("Deny")
または
choose("approve_deny_row_5_approve")
choose("approve_deny_row_5_deny")
ある実際の無線入力がページ上に表示されている(とスタイリングを可能にするために隠されていない)と仮定すると、
test_approveに等しい 'value'属性を持つ' input'要素はありませんが、 'value =" person_approve "は少なくともHTMLで提供される部分にあります。あなたは 'find( 'input [value =" person_approve "]')をクリックしてみましたか、それとも' find( 'input [data-ui-verify-key = "test_approve"]' – Andersson
'input'要素がページ上に実際に見えると仮定すると' choose( "approve_deny_row_5_approve")と 'choose(" approve_deny_row_5_deny ")'はどちらか一方のラジオボタンを選択する必要があります( '行にスコープがあれば ''拒否 ''を選択します。) - 正確に何のエラーが生成されますか? –
@Anderssonはちょうど誤ったタイプだったので、私はいくつかの値を変更し、それを忘れてしまった。 @ThomasWalpole残念ながら、( '承認')を選択しても動作せず、 'Capybara :: ElementNotFound:ラジオボタンを見つけることができません。ページの他の場所(あらかじめテキスト形式)でフィルタを使用しているので、おそらくそれはスコープの問題です。 – msmith1114