使用RSpec和Capybara单击图像

Joh*_*Dow 2 ruby testing rspec ruby-on-rails capybara

我正在使用Rspec和Capybara.

我试图点击图片,但找不到让Capybara点击图片的方法.我不知道该怎么做,因为我实际上有同一类,alt和src.

谢谢

html的例子

<tr class="even">
  <td class="gridData" style="text-align:center;">
  <td class="gridData"> 221 </td>
  <td class="gridData" route="default" reset="0" urlparams="users index edit {userID}" label="Username">
  <td class="gridData">
  <img class="user-info-grid" alt="info" src="/themes/system/images/icon/16/information.png">
  </td>
</tr>

 <tr class="odd">
  <td class="gridData" style="text-align:center;">
  <td class="gridData"> 222 </td>
  <td class="gridData" route="default" reset="0" urlparams="users index edit {userID}" label="Username">
  <td class="gridData">
  <img class="user-info-grid" alt="info" src="/themes/system/images/icon/16/information.png">
Run Code Online (Sandbox Code Playgroud)

实际上这里是我要测试的源代码:

  <img class="user-info-grid" alt="info" src="/themes/system/images/icon/16/information.png">
Run Code Online (Sandbox Code Playgroud)

但正如我所说,我找不到让Capybara点击图像的方法.

有任何想法吗?

sur*_*h.g 12

你可以用这个:

page.first(".user-info-grid").click
Run Code Online (Sandbox Code Playgroud)

这用于查找user-info-grid类并应用click功能.

如果有多个类带有此名称,则单击将在第一个找到的类中执行.


Ant*_*ine 9

您可以在查找ID时使用它:

find("#the_id").click
Run Code Online (Sandbox Code Playgroud)

或者是一堂课

find(".the_class").click
Run Code Online (Sandbox Code Playgroud)