最近、IE WebDriver を使用して Selenium でサンプル テストを開発しましたが、IE ブラウザーで正常に動作しています。テスト コードを変更せずに、ドライバーを Chrome または Firefox Driver に変更するだけで、なぜ同じテストが Chrome または Firefox で機能するのか疑問に思っていました。テストは IE のようには機能しませんでした。
Web ドライバーの実装の違いを示すリンクを誰かが知っているか、私に指摘できるかどうか疑問に思っていましたか?
私は私のテストをより詳細に説明します。
Dev Express AspxComboBox が 1 つある Web サイトを持っています。これは先行入力コンボ ボックスです。つまり、最初は空で、ユーザーが入力を入力すると、コンボ ボックスは入力されたテキストを含むデータをデータベースに照会します。一度に 10 件の結果が表示されます。ユーザーが下にスクロールすると、さらに結果が取得され、コンボ ボックスに追加されます。
私のテスト
1) 指定された URL でブラウザを開きます
2) コンボ ボックスに「a」と入力します。
3) 10 件のレコードが入力されていることを確認します。
4) コンボ ボックスが使用するのと同じクエリを使用し、同じフィルタリングで実行します。Blockquote 5) クエリ結果をコンボ ボックスの内容と比較します。
6) リストの 10 番目の要素を選択して、スクロールをシミュレートし、さらに結果を取得します。
上記のテストは、IE Web ドライバーで問題なく動作します。
Chrome Web Driver に変更したところ、タイミングの問題に直面しました。Chrome Driver は IE Web Driver よりも速いようです。適切な待機ステートメントを使用していますが、うまくいきません。たとえば、テキストの後に、コンボ ボックスに 10 個の要素が含まれるまで存在する待機をコンボ ボックスに入力します。この待機が成功しても、Chrome ドライバーはコンボ ボックスの最初の項目を空として取得します。ブレークポイントを配置してテストアプリを十分に長く待機させることでこの問題を解決しましたが、リストの最後の項目をクリックすると問題が発生しました。IE では 10 番目の項目をクリックするだけでよいのですが、同じコードが Chrome Web Driver で例外を生成しました。クリックが目的の要素にならないと言っていました。
私が直面した上記の課題により、Web ドライバーの実装には違いがあると思いました。人々は同意しますか?