В ответ на @ har07, XPath 1.0 (который реализован в браузерах) не имеет ends-with
, но в CSS предусмотрен селектор атрибутов end-with $=
expect(rendered).to have_css(‘label[for$=“_state”]’)
, или вы можете использовать регулярное выражениесо встроенным :label
селектором Capybaras
expect(rendered).to have_selector(:label, for: /_state$/)
Если вы действительно хотите придерживаться XPath поверх CSS, тогда вы можете использовать гем xpath, который Capybara использует для создания собственных XPath инаписать
xpath = XPath.descendant(:label).where(XPath.attr(:for).ends_with('_start'))
expect(rendered).to have_xpath(xpath)