コンテキスト:私のRSpecの中(Rubyとカピバラを使用して)rspecで要素(ボタン)が「クリック可能」かどうかを検出できますか?
- 私は私のアプリでアクションをテストするためのリンクをクリックしてください:私のアプリへの分岐を追加します。
- モーダルウィンドウでを開き、ブランチを選択してから、アプリケーションにブランチを追加するために「送信」ボタンをクリックします。 「送信」をクリックすると、モーダルウィンドウが閉じます。
- rspecsは、メイン画面の[保存]をクリックすると、アプリケーションの状態を保存します(そして、ブランチの追加を効果的に保存します)。
問題:(一見)ブランチを選択するために使用されてモーダルウィンドウがまだ存在している間に、メイン画面上の「保存」ボタンをクリックしようとしているので、RSpecのが失敗しています。このテストでは、「保存」ボタンコンポーネントが見つからないとは言わず、クリックすることはできません。
ログのエラーは次のとおりです。
[...]Save</button> is not clickable at point (692, 23). Other element would receive the click[...]
落とし穴:このRSpecのは、それは私のローカルサーバーに対して実行されたときのように、一部の環境では正常に渡しますが、それはときにそれを失敗しますオートメーションサーバーによって実行されます。したがって、このテストは「フレーク」とタグ付けされています。
可能な解決策:我々はこれまでにしようとしているもの:私たちの「クリック設定」の周り
プレイ、我々は「準備状態」にし、モーダルウィンドウが消えていることであることを確認すること。私たちは同じエラーを繰り返したので、これで失敗しました。
「待機」を実装します。モーダルウィンドウが存在するモーダルウィンドウのボタンを「提出」場合
XYZ.add_new_branch_name(@branch_name) while Utilities.element_visible?(:xpath, myElement) sleep(0.5) end XYZ.save
while条件のチェックを存在するように見えたしながら、私たちは少しのためにスリープ状態にループを追加しました。 element_visible機能はfindはすでにボタンが存在しているように見えますがクリックできない可能性があることを考慮に入れる必要がある場合
find(method,element).visible?
しかしが、私はわからない使用しています。
これはまだ失敗したので、我々はボタンを「保存」をクリックする前に、モーダルがなくなっていることを確認するためにすべての私たちの努力にもかかわらず、私が尋ねるTOTたい:
はへの適切な方法はありますモーダルウィンドウの背後にある要素がクリック可能かどうかを検出するまたはrspecsを使用していないかどうかを検出しますか?