0

我的配置:

https://gist.github.com/4547098

html如下:

<td>
  <img id="listActorsResultsForm:actorList:1:viewActionImage" 
     src="/TM/img/icons64/kfind.gif" height="28" 
     onclick="A4J.AJAX.Submit('listActorsResultsForm',event,
     {'similarityGroupingId':'listActorsResultsForm:actorList:1:j_id709','parameters':
     {'listActorsResultsForm:actorList:1:j_id709':'listActorsResultsForm:actorList:1:j_id709'} 
     } )" style="cursor: pointer;" title="Voir" width="28">
</td>

我的图像有一个链接到 onclick 事件的 ajax.submit。我想做的是用水豚点击图像,但我所有的尝试都失败了。

我试过的:

  find('listActorsResultsForm:actorList:1:viewActionImage').click
  find_by_id('listActorsResultsForm:actorList:1:viewActionImage').click
  page.find(:xpath,'//*[@id="listActorsResultsForm:actorList:1:viewActionImage"]').click

我找不到单击图像以执行 ajax.submit 的好方法。

有一种奇怪的行为

当我做:

  page.find(:xpath,'//*[@id="listActorsResultsForm:actorList:1:viewActionImage"]').click
  click_on 'listActorsResultsForm:actorList:1:viewActionImage'

我想看的页面出现了,但是有一个错误:

Failure/Error: click_on 'listActorsResultsForm:actorList:1:viewActionImage'
 Capybara::ElementNotFound:
   Unable to find link or button "listActorsResultsForm:actorList:1:viewActionImage"
 # ./spec/aipo_spec.rb:20:in `block (3 levels) in <top (required)>'

但是在命令行上下文中(请参阅设置要点)它可以工作

Capybara.find(:xpath,"//img[@alt='viewActor119']").click

找到链接,点击操作打开网页

有谁知道为什么?

4

1 回答 1

0

根据Capybara docs,“click_on”专门寻找具有该 ID 的链接或按钮,而您只有具有该 ID 的图像。当您从类似命令运行它时,您正在搜索具有正确 id 的图像。

我的 Ajax 不是很好,所以如果我错了请纠正我,但你不能用正确 id 的标签包装那个图像吗?

于 2013-01-16T15:18:13.837 回答