おはようございます!Selenium Webdriver。 Internet Explorer 9でマウス操作が不正確になる
私はネイティブの英語のスピーカーではないので、私の公正な文法のために私を許してください。
セレンは、さまざまなブラウザのWebアプリケーションをテストするためのフレームワークです。 Seleniumを使っている人に助けを求める。私はSeleniumのGoogleグループのメンバーに質問していましたが、誰も私を助けませんでした。
私は、Selenium Webdriverを使用して多くのマウス操作を行うプロジェクトに取り組んでいます。私はC#でテストを書いています。私のチームがSelenium Webdriverを使い始めると、そのマウスアクション(OpenQA.Selenium.Interactions.Actions)はIEで予期せぬ動作をし、さまざまなブラウザ(および異なるマシンでさえ)で動作が異なることに気付きました。初めて私はマウスの操作に取り組んでいた唯一のテスターでした。私はSelenium Webdriverを非難していました。私はこの不正確さを避ける方法を見つけようとしていました。私は長い間この問題を調査していましたが、何の結果もありませんでした。しかし、私は先史時代にあなたの時間を過ごしたくありません。
[OK]を、状況を説明します。私たちはデモプロジェクトを作成しました。そして、マウスの左ボタンを押しながらこのキャンバスにペイントする可能性を実装しました。だから私はそれがあなたにとってかなり明確であることを願っています。
次に重要なのは、コンソールへのログを有効にしたことです。つまり、コンソールを開いてキャンバス内でマウスの矢印の座標を見ることができます。
はその後、我々はテストを書いた:
Actions a = new Actions(driver);
a.Build();
a.MoveToElement(canvas, 100, 100)
.ClickAndHold()
.MoveByOffset(100, 0)
.Release();
a.Perform();
コードは非常に簡単です。キャンバスにマウスの矢印を移動し、マウスの矢印を(100,100)だけオフセットしてから、垂直方向に100(マウスの左ボタンを押したまま)移動します。理解できるように、ログの結果は(200,100)にする必要があります。
しかし、ここで最も興味深いものがあります:私の同僚は同じ結果(200,100)を持っています!しかし、彼らは1ヶ月前に不正確でした(私たちがマウスの動きが不正確だと思った理由です)。そして私はまだ不正確な結果を残しています:(192、96)。オフセットの100pxあたり4pxのエラーがあります。私の同僚は、彼らが何を変えたのか、なぜマウスの行動が今、正しく動作しているのかを理解していません。
もう一つ興味深いのは視覚的に(私はキャンバスにペイントすることができます)、それは絶対に100pxです(マウスの矢印を垂直に動かすとマウスボタンが押されます)!素晴らしい!
これは実験です。
私はこの問題を解決するのに適切な人に頼んでいます。これはIE9でのみ表示されます。そして私はその行動の理由を理解したい。アクションクラスはどのように実装されていますか?それはマウスのドライバやそのようなものに依存することができますか?この場合、問題があれば、ワイヤレスマウスを使用していて、それに特別なドライバがあります。私を助けてください!
P.S.マウスの設定、画面の設定を変更しようとしましたが、結果は表示されませんでした。
ありがとうございました!
よろしくお願いいたします。 Michael Kalygin
なんてこった!これは信じられないほどですが、これが理由です。私は何度かIEを再インストールしていました...私は設定を見ていて気付かなかった... おそらく、IEはデフォルトで105%に設定します!お使いのコンピュータで同じ問題が発生した場合は注意してください。 大きな感謝!あなたは素晴らしいです! :) P.S.:そんなに馬鹿...本当に...すみません!すべてのバグは常に愚かです! :) –
"バグは常に愚かです" - 私の人生の物語::) – Anders
IE9では、ズームレベルを下げても機能します。以下のコードを実装する必要があります:/ n
var service = InternetExplorerDriverService.CreateDefaultService(@"C:\SeleniumDrivers"); var options = new InternetExplorerOptions { IgnoreZoomLevel = true };
– Rishabh