2016-10-24 18 views
2

私はnode.trigger( "click")でこれを使用したい要素がありますが、その要素を見つける方法がわかりません。それはlink_toであり、私はこの質問に対する答えを見つけようとしています。ここでnode.trigger( "click") - Capybara

は要素ここ

<%= link_to '✚ Invite Another Team Member', "#email", data: { invitation_modal_add: "" } %> 

は、私が変更したいのですが、私のテストです。それは私がこのエラー

Capybara::Poltergeist::MouseEventFailed: 
    Firing a click at co-ordinates [0, 0] failed. Poltergeist detected another element with CSS selector 'html.no-mobile.wf-loading.js.touch-events body.accounts.users.index div.jquery-modal.blocker' at this position. It may be overlapping the element you are trying to interact with. If you don't care about overlapping elements, try using node.trigger('click'). 

答えて

1

を取得していますので、カピバラは現時点でしようとする私に言っているものですので

click_link "✚ Invite Another Team Member" 

Idはこの

link.trigger("click") 

のようなものでそれを置き換えるのが好きあなただけの要素を見つけるには

link = find(:link, "✚ Invite Another Team Member") 

しかし、トリガーを使い始める前に、その前にエラーメッセージの部分を読んでください。 "重複している要素に気にしないならば"。あなたが実際にあなたのアプリをテストしているなら、ユーザーがリンクを実際にクリックすることを妨げる可能性があるので、おそらく重複している要素に気をつけているでしょうし、0,0でリンクをクリックしようとしているという事実は、ページレイアウト。おそらく、リンクが重複しないように、より大きなウィンドウサイズ(window_sizeオプションをドライバを登録するときは-)に設定してください。何らかの方法でリンクが完全に隠れていないか、折りたたまれていないことを確認してください。その要素は対話可能になります。実際にリンクをクリックできるユーザーが気にしない場合は、#triggerを自由に使用してください