私がテストしているアプリは、最初に隠された要素がいくつかあります。あなたは.btn_thread_options
要素の上に置くとCapybaraセレンドライバ、要素をホバリング
.thread_options{
display: none;
}
.btn_thread_options:hover .thread_options{
display: inline;
}
、いくつかのリンクが表示されて、私はカピバラがクリックしたいこと:別の要素の上にマウスを移動するとき彼らはCSSを経由して表示されます。 click_link "Send Response"
を使用して何もせずにこれらをクリックしようとすると、私にエラーを与える:
Failure/Error: click_link("Send Response")
Selenium::WebDriver::Error::ElementNotVisibleError:
Element is not currently visible and so may not be interacted with
は
page.execute_script("$('.btn_thread_options').trigger('mouseover')")
が(同じ結果)のいずれかを動作しないようにそれをクリックする他の方法を使用しようとしています。
NORマウスオーバーするためにそれを強制しようとする最初の項目をクリックするん:
page.find(".btn_thread_options").click
が、これは正常に動作するために取得する方法はありますか?
必要がありますか?または、不透明度を0に設定すれば十分ですか?そうでない場合は、jquery show()をクリックする前に削除し、hide()を削除するステップを実行します。 – Gazler
隠し要素がフォームを送信するので、私は 'opacity:0'は実際には機能しないと思います。私は人々が間違って空白に見えるものをクリックしてしまわないようにします。 。今のところ私の回避策は、あなたが言及しているように、mouseoverとmouseoutでjqueryで非表示にすることです...しかし、私はちょうどCSSでそれを保つことができたらうれしいでしょう:p – nzifnab