如何使用RSpec和Capybara单击图像作为链接

Joh*_*Dow 2 ruby testing rspec ruby-on-rails capybara

我正在使用Rspec和Capybara.

如何编写单击图像的步骤?我一直无法找到让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">
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Jon*_*n M 9

点击普通链接应该没有任何不同.我不知道如何在您的示例中选择单个链接,但链接上没有任何唯一可识别的属性.

如果您无法更改标记,则可能需要使用XPath实际href按URL 选择元素,例如

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

会给你第一个链接,然后

my_link.click
Run Code Online (Sandbox Code Playgroud)

应该正常点击它.

编辑:只是为了澄清,重要的是你选择a元素并单击它,而不是img.