2017-03-09 6 views
-1

私はカピバラでテストしたい「プレビュー」ボタンが2つありますが、それぞれのプレビューボタンを個別にクリックする方法はわかりません。私はカピバラには新しいので、まだ学んでいます。テーブルの外観は次のとおりですカピバラでIDに基づいたリンクをクリック

<tr> 
    <td> 
     <a data-target="#1_edit_prompt" data-toggle="modal" href="#">Cta 1</a> 
    </td> 
    <td class="nowrap"> 
    Cta 1 
    </td> 
    <td class="nowrap"> 
     <a data-target="#1_uses_modal" data-toggle="modal" href="#">0</a> 
    </td> 
    <td class="nowrap"> 
    3/9/2017 
    </td> 
    <td class="actions"> 
     <a data-target="#1_edit_prompt" data-toggle="modal" href="#">Edit</a> 
     <a data-target="#1_delete_modal" data-toggle="modal" href="#">Delete</a> 
     <a class="cta-preview" data-cta_id="1" href="#">Preview</a> 
    </td> 
</tr> 
<tr> 
    <td> 
     <a data-target="#2_edit_prompt" data-toggle="modal" href="#">Cta 2</a> 
    </td> 
    <td class="nowrap"> 
     Cta 2 
    </td> 
    <td class="nowrap"> 
     <a data-target="#2_uses_modal" data-toggle="modal" href="#">0</a> 
    </td> 
    <td class="nowrap"> 
     3/9/2017 
    </td> 
    <td class="actions"> 
     <a data-target="#2_edit_prompt" data-toggle="modal" href="#">Edit</a> 
     <a data-target="#2_delete_modal" data-toggle="modal" href="#">Delete</a> 
     <a class="cta-preview" data-cta_id="2" href="#">Preview</a> 
    </td> 
</tr> 

各プレビューボタンには、各ボタンに固有のdata-cta_idがあります。そのIDに基づいてボタンをクリックしたい

答えて

1

で要素を取得するために、私たちは最初に何かをクリアする必要があります。プレビュー "ボタン"は実際にはリンクです(ボタンのようにスタイルを設定しても、まだ<>要素です)。click_xxxに行く場合は、click_linkまたはclick_link_or_buttonを使用する必要があります。click_buttonは機能しません。

あなたができることの1つは、そのセクションでリンクを一意にする要素への範囲click_linkです。彼の答えにFrediusによって示されるように

page.within('#id_of_table tbody') do # scope to the specific table 
    find('tr:nth-child(1)').click_link('Preview') # click Preview in first row 
    find('tr:nth-child(2)').click_link('Preview') # 2nd row 
end 

別のオプションは、最初のソリューションは、将来的には二はるかに理解しやすいだろう属性の違いや属性セレクタ

find("[data-cta_id='1']").click 

を使用し、だろう少ないコードです。これはしかし私のコードであれば、私は、行全体がその「CTA」を参照しているので< TR>要素にdata-cta_id属性を配置し、テストで

find("tr[data-cta_id='1']").click_link('Preview') 

ような何かをやっているだろう。

0

あなたはこれまで何をしているのか、なぜこれをやりたいのかはっきりしません。しかし、findを使うことができます。 find("[data-cta_id='2'"])よう

何かが何かをする複数の方法があるカピバラといつものようにid 2.

関連する問題