私はユーザーのID、名前、電子メール、およびユーザー名を一覧表示するユーザーテーブルを持っています。私がしようとしているのは、特定のエントリがそのテーブルにあることを確認することです。capybaraを使用してテーブル内の特定の行を見つける
本質的にはID = 22の行を見つけ、name = John Smith
、email = [email protected]
およびusername = jsmith
を確認してください。以下のように設定することができます。私が理解できないことはいくつかあります...
- どのようにして特定のテキスト、I.E.つまり、user.id = 22となります。
- 私はその行を取得したら、どのように使用するのですか?各要素を取得します。
私は一種のforループを実行できると思っていましたが、has_selector?
の条件を設定する方法がわかりません。 (以下で擬似コード)
page.all('tr').each do |tr|
next unless tr.has_selector?('td.id = 22') #psuedocode
expect(tr.get('td.name').to eq("John Smith")
#other expects here...
end
表コード
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td class="id"><%= user.id %></td>
<td class="name"><%= link_to user.name, user %></td>
<td class="email"><%= user.base_name %></td>
<td class="username"><%= user.username %></td>
</tr>
<% end %>
</tbody>
</table>
だろう"name _#{user.id}"のクラスを持つ要素です。 –
私は知っていますが、 'td class =" name _ <%= user.id%> "'のように記述することもできます。また、ユーザーインスタンスが1つだけの場合も同様です。 –
クラスにユーザーIDを追加するだけで、htmlに追加すると行のデータ属性にする必要があります。 –