Rails / Capybara: Как щелкнуть ссылку в строке таблицы, которая также содержит уникальный текст

У меня есть приложение, которое не присваивает уникальные идентификаторы ячейкам таблицы. Учитывая уникальный текст в столбце 1, ссылку управления в столбце 2 и ссылку удаления в столбце 3, как я могу сказать капибаре щелкнуть ссылку управления в той же строке, которая содержит текст «Foo»?

Foo   manage  delete
Bar   manage  delete

Я вижу, как использоватьfind('tr', text: "Foo") при использовании с.should пункт. И я вижу, как нажать на ссылку, которая содержит текст «Управление». Но я не вижу, как их объединить, чтобы найти строку, и внутри этой строки щелкните ссылку.

Ответы на вопрос(2)

Другой пример:

When(/^I delete the Book with the Title "(.*?)"$/) do |title|
  find('tr', text: title).click_link("Delete")
end
Решение Вопроса

Я проверил это, и оно должно работать:

find(:xpath, "//tr[td[contains(.,'Foo')]]/td/a", :text => 'manage').click

Это говорит о том, что найдите строку со столбцом, содержащим текст «Foo», и нажмите на ссылку в столбце в той же строке с текстом «управление».

Если вас не волнует, где появляется «Foo» (т. Е. Может быть где угодно в строке), то вы можете сделать это:

find(:xpath, "//tr[contains(.,'Foo')]/td/a", :text => 'manage').click
 Chris Salzberg12 окт. 2012 г., 10:45
Обновил мой ответ. Первоначально я использовал одинаковый формат одинарных кавычек для xpath и строк внутри xpath, что не сработало бы.
 jpwynn15 окт. 2012 г., 00:16
офигенно спасибо ...

Ваш ответ на вопрос