2011-11-30 50 views
2

我使用Rspec的和水豚的链接。如何点击图片为使用RSpec的和水豚

我如何写一个步骤,点击图片?我一直无法找到一个很好的方式让水豚看到图像作为链接。

感谢

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"> 

任何建议的

实例?

回答

9

这应该不会有什么不同,以点击普通链路。我没有看到你会如何去选择你的例子中的一个单独的链接,但没有任何链接上的唯一标识属性。

如果你不能改变的标记,你可能需要使用XPath实际的网址,例如选择href元素

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

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

my_link.click 

应该单击它作为正常。

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

+0

您正在使用哪种驱动程序?这听起来很合理,但'水豚:: ElementNotFound: 无法找到的XPath “一[包含(@ HREF, '1114 /内群/ 1')]” #(EVAL):2:'找到”' –

+0

我只是编辑XPath来包括“//”前缀 - 尝试 –

+0

真棒!男人,你又救了我......非常感谢:) –

0

我把这个和作品: 为的index.html练到显示:

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

为show.html

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