Капибара: ссылка на контент HTML не найдена - PullRequest
1 голос
/ 31 марта 2011

Учитывая структуру HTML, подобную этой,

<a href="…"><strong>My Link</strong></a>

не перехватывается Capybara при шаге огурца

When I follow "My Link"

с использованием веб-шага по умолчанию

When /^(?:|I )follow "([^"]*)"$/ do |link|
  click_link(link)
end

в то время какэто работает:

When I follow "<strong>My Link</strong>"

Я давно не использую Capbybara, но я вижу, что вызывает проблему.Итак, на более общем уровне - как правильно это сделать?Конечно, этот случай должен быть довольно распространенным, верно?

Любые идеи и общие соображения о злоупотреблении огурцами очень приветствуются!

1 Ответ

1 голос
/ 31 марта 2011

Я бы переместил сильный тег за пределы тега привязки или лучше использовал бы для этого CSS.

Или вы можете назначить атрибут id для ссылки и использовать его вместо содержимого.Этот способ лучше всего подходит, если ваше приложение поддерживает несколько языков.

В противном случае вы должны написать своего рода селектор xpath для такого особого случая:

find(:xpath, "//a[contains(//text(), \"#{locator}\")]").click

Не проверено, просто идея.

...