Как нажать на изображение в качестве ссылки, используя RSpec и Capybara - PullRequest
2 голосов
/ 30 ноября 2011

Я использую Rspec и Capybara.

Как мне написать шаг, чтобы нажать на изображение?Мне не удалось найти хороший способ заставить Капибару видеть изображение как ссылку.

Спасибо

Пример HTML

<a title="inGroups" href="/de/users/index/roles-list/serviceID/1112/inGroup/1">
  <img border="0" alt="inGroups" src="/themes/system/images/icon/16/role_activate.png">

<a title="inGroups" href="/de/users/index/roles-list/serviceID/1114/inGroup/1">
   <img border="0" alt="inGroups" src="/themes/system/images/icon/16/role_activate.png">

<a title="notInGroups" href="/de/users/index/roles-list/serviceID/1112/inGroup/0">
   <img border="0" alt="notInGroups" src="/themes/system/images/icon/16/role_deactivate.png">

<a title="notInGroups" href="/de/users/index/roles-list/serviceID/1114/inGroup/0">
    <img border="0" alt="notInGroups" src="/themes/system/images/icon/16/role_deactivate.png">

Есть предложения?

Ответы [ 2 ]

9 голосов
/ 30 ноября 2011

Это не должно отличаться от обычной ссылки. Я не понимаю, как бы вы пошли в выборе отдельной ссылки в вашем примере, без каких-либо однозначно идентифицируемых атрибутов в ссылке.

Если вы не можете изменить разметку, вам может потребоваться использовать XPath для фактического выбора элемента href по URL, например,

my_link = find(:xpath, "//a[contains(@href,'1114/inGroup/1')]")

даст вам первую ссылку, а затем

my_link.click

Должен щелкнуть по нему как обычно.

РЕДАКТИРОВАТЬ: просто чтобы уточнить, важно то, что вы выбираете элемент a и щелкаете по нему, а не img.

0 голосов
/ 31 мая 2017

Я поставил это и работает: для index.html попал на шоу:

 find("img[src*='photo03.jpg']").click

для show.html

expect(page).to have_css("img[src*='photo03.jpg']")
...