使用水豚点击特定的 link
click the specific link using capybara
我有以下 html.haml 页面
%h2 List of available plants
%table#plants
%thead
%tr
%th Name
%th Description
%th Price
%th Action
%tbody
- @plants.each do |plant|
%tr
%td= plant.name
%td= plant.description
%td= plant.price
%td= link_to "Select", purchase_orders_path(plant: plant, start_date: @start_date, end_date: @end_date), method: :post
我正在执行黄瓜步骤,我想根据名称单击植物的 link。我现在拥有的是这一步实现,它只选择 'Select' link.
的第一次出现
When(/^I select "(.*?)"$/) do |plant_name|
click_link('Select', match: :first)
end
而不是先单击 'Select',我想找到一个 'tr',其中 'td' plant.name 等于我的 plant_name,然后单击 "Select" 'tr'
如果你的植物名称足够独特,你可以做到
find('tr', text: plant_name).click_link('Select')
这会起作用,因为 :text 选项匹配 tr 元素中可见文本的子字符串,然后 click_link 被限定在找到的 tr 中。如果您有任何植物名称是另一个植物名称的子字符串,或者包含在另一个植物描述中等,它可能会失败 - 但可以通过在测试集中明智地选择植物 names/details 来处理测试。如果您确实需要使用作为其他植物子字符串的植物名称进行测试 names/details,可以使用 xpath 和祖先轴重写初始查找。
我有以下 html.haml 页面
%h2 List of available plants
%table#plants
%thead
%tr
%th Name
%th Description
%th Price
%th Action
%tbody
- @plants.each do |plant|
%tr
%td= plant.name
%td= plant.description
%td= plant.price
%td= link_to "Select", purchase_orders_path(plant: plant, start_date: @start_date, end_date: @end_date), method: :post
我正在执行黄瓜步骤,我想根据名称单击植物的 link。我现在拥有的是这一步实现,它只选择 'Select' link.
的第一次出现When(/^I select "(.*?)"$/) do |plant_name|
click_link('Select', match: :first)
end
而不是先单击 'Select',我想找到一个 'tr',其中 'td' plant.name 等于我的 plant_name,然后单击 "Select" 'tr'
如果你的植物名称足够独特,你可以做到
find('tr', text: plant_name).click_link('Select')
这会起作用,因为 :text 选项匹配 tr 元素中可见文本的子字符串,然后 click_link 被限定在找到的 tr 中。如果您有任何植物名称是另一个植物名称的子字符串,或者包含在另一个植物描述中等,它可能会失败 - 但可以通过在测试集中明智地选择植物 names/details 来处理测试。如果您确实需要使用作为其他植物子字符串的植物名称进行测试 names/details,可以使用 xpath 和祖先轴重写初始查找。