2017-12-27 4 views
0

私はWindows上でCtrlキーを押しながらMacOS上でコマンドキーを使って複数選択をテストするCapybaraテストを書こうとしています。CapybaraとPoltergeistをCtrl +クリックする方法はありますか?

ここでは、ドライバとしてSeleniumを使用する場合にのみ機能する解決策が見つかりました。 Testing jQuery Selectable capybara or selenium (ctrl + click)

しかし、解決策はポルターガイストドライバでは機能しません。ポラテジストは現在、Ctrl +クリックを実行するサポートを持っていますか?

答えて

0

ポルターガイストはいません。テストでPoltergeistを使用する必要がある場合は、おそらくexecute_scriptを使用してJSからイベントを作成して起動する必要があります。 JSウィジェットの場合にのみ適用されます。実際に複数の属性を持つHTMLセレクトの場合は、各オプションを個別に選択できるだけで、複数の属性を選択する必要があります。

+0

ありがとうThomas!私はこの解決策も知っています:https://stackoverflow.com/questions/8474103/is-there-a-way-to-send-key-presses-to-webkit-using-capybara KeyboardEventを使用することを提案していますが。 MDNによると推奨されておらず、実際には推奨されていないkeyCode。私は 'li' HTML要素を選択しようとしています。問題は、複数の選択を行うためにユーザーが「Ctrl」または「Shift」を押し続ける必要があるように意図的に作成したことです。 – SpartaSixZero

+0

@SpartaSixZero 'send_keys'は返す前にキーを解放しますので、それに続くクリックのためにダウンしません。あなたの説明から、そのイベントで設定された正しいキーボード修飾子でマウスクリックイベントを発行する必要があると仮定します。あなたのコードがキーボード経由で複数の選択を行う方法も実装しているなら、おそらく 'send_keys'でそれを行うことができます - http://www.rubydoc.info/gems/capybara/Capybara/Node/Element#send_keys-instance_method - inクロスドライバーの様式 –

+0

残念なことに、私たちの要件は、マルチ選択を行うためには、マウスの左クリックとキーダウンの組み合わせが必要であると述べています。ですから、send_keysはマウスのクリックではなく、キーを受け取るだけなので、send_keysはここで助けになるとは思わないでしょう。キープレスだけで複数の選択を可能にすることはできませんが、カピバラのテストパスを作るだけの価値はありません。 – SpartaSixZero

関連する問題