Capybara - 单击 link 基于另一个值

Capybara - Clicking a link based another value

我很难找到并点击特定的 link。 HTML table 中的所有 link 都包含单词 'Edit'(它是一个 'Edit' link 用于配置设置)。 但是,link 因我正在处理的环境而异,因此只有 link 的 'Edit' 位是一致的。

在页面的 HTML 中,我发现此 link 是 table 的一部分,其中还包含我要编辑的配置设置。 我已经努力了几个小时才通过 Xpath 找到这个 link,通过 CSS... 基本上我需要有人的帮助。因此我的 post 在这里!

页面的 HTML 看起来像这样(我将其匿名化 - 这甚至是一个词吗?):

<table>
   <thead>
     <tr>
       <th>edit</th>
       <th>Name</th>
       <th>Value</th>
       <th>Label</th>
     </tr>
   </thead>

   <tbody>
       <tr>
         <td><a href="/configurations/406/edit">Edit</a></td>
         <td>Configuration 1</td>
         <td>This is its value</td>
         <td>This is its explanation</td>
       </tr>
       <tr>
         <td><a href="/configurations/327/edit">Edit</a></td>
         <td>Configuration 2</td>
         <td>This is its value</td>
         <td>This is its explanation</td>
       </tr>
       <tr>
         <td><a href="/configurations/328/edit">Edit</a></td>
         <td>Configuration 3</td>
         <td>This is its value</td>
         <td>This is its explanation</td>
       </tr>
     </tbody>
   </table>

有人可以根据 'configuration' 给我一些关于如何到达每个 'Edit' link 的指示吗?

非常感谢。真是省得我头疼!

您可以将 Capybaras 的发现和操作范围限定到其他元素,因此

find(:css, 'tr', text: 'Configuration 2').click_link('Edit')

将单击包含文本 'Configuration 2'

的 tr 中的编辑 link