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

リンクが見つかり、クリック操作で Web ページが開きます

誰かが理由を知っていますか?

4

1 に答える 1

0

Capybaraのドキュメントによると、「click_on」はそのIDのリンクまたはボタンを特に探していますが、そのIDの画像があるだけです。のようなコマンドから実行すると、正しいIDの画像を検索します。

私のAjaxは素晴らしいものではないので、間違っている場合は修正してください。ただし、その画像を正しいIDのタグでラップすることはできませんか?

于 2013-01-16T15:18:13.837 に答える