0

いくつかのウィジェットを開発しており、キーボード ナビゲーション (アクセシビリティ) をサポートする必要があります。仕様に関してはキーボード ナビゲーションを追加しましたが、すべて問題ありませんが、単体テストを使用して動作することもテストしたいと考えています。

私たちが試したことは、それをテストすることです

  • セレンですが、セレンは矢印キーを記録していないようです
  • busterJS、スレッドSimulate left and right arrow key event with javascript で指定されたソリューションを使用します。しかし、ここでは、違法なことをしていることを示すさまざまな例外が発生します。
  • jQuery trigger() を使用してイベントをトリガーすると、前の試行と同じ結果になります。

キー コードを使用してキーボード イベントを発生させることは、ブラウザーの製造元によって危険であると見なされる可能性があるため、禁止されていることは理解できます (それがここでの中心的な問題である場合)。これが実際に当てはまる場合、イベントを発生させる可能性を有効にするために IE10、Chrome、または Firefox に設定するオプションはありますか?

コメントを歓迎します。ここで完全に間違った方向を見ている可能性もあります。JavaScript でキーボード ナビゲーションを単体テストする方法について考えがある場合は、お気軽に教えてください :)

4

1 に答える 1

2

さて、いくつかの解決策が見つかりました。

  1. 「ユーザーが何も変わっていないと言うとき、彼が嘘をついていると仮定する」という古いことわざは、再び真実であることが判明しました。「JavaScriptで左右の矢印キーイベントをシミュレートする」スレッドでソリューションを再テストし、そこで説明されているソリューションとまったく同じように実行しました(IE10を除く)。

    IE10 で機能させるには、ソリューション内の if テストの順序を切り替える必要がありました。

  2. Seleniumの解決策も見つけました。
    セレンは矢印キーのナビゲーションを記録しませんが、keyDown コマンドを指定し、要素ロケーターをターゲットとして設定し、エスケープされた keyCode を値として設定できます (\37 = 左、\38 = 上、\39 = 右、\40 = down)
    セレン要素ロケーターを指定する方法は、セレンのドキュメントに記載されています

両方のソリューションを機能させるには、テストに使用する要素を DOM にアタッチする必要があります。

于 2012-08-15T12:05:37.210 に答える