我的配置:
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)>'
但是在命令行上下文中(参见gist for setup)它可以正常工作
Capybara.find(:xpath,"//img[@alt='viewActor119']").click
找到链接,点击操作打开网页
有谁知道为什么?
答案 0 :(得分:0)
根据Capybara docs,“click_on”专门查找具有该ID的链接或按钮,而您只是拥有该ID的图片。当您从命令中运行它时,您正在搜索具有正确ID的图像。
我的Ajax不是很好,所以如果我错了,请纠正我,但是你不能用带有正确ID的标签包装那个图像吗?