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

时间:2011-11-30 13:51:44

标签: ruby-on-rails ruby testing rspec 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">

有什么建议吗?

2 个答案:

答案 0 :(得分:9)

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

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

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

会给你第一个链接,然后是

my_link.click

应该正常点击它。

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

答案 1 :(得分:0)

我把这个和作品: 因为index.html得到了节目:

{{1}}

用于show.html

{{1}}