私は機能テスト(link)を自動化するためにSeleniumでのインターンテストを使用しています。geckodriverを使用してマウスを位置に移動
複数のブラウザに対して実行できる必要があります。だから我々は、クロームにもっと焦点を当てたが、また、我々はIEとFirefoxのに対してテストを実行することができましたが、geckodriver
後にリリースされた、我々はそれに切り替え、マウスイベントを暗示しているテストのほとんどが失敗しています、例えば、私は次の例外取得していますmoveMouseTo()
を呼んでいるとき:私は要素の上にホバリングについて同様の質問を見つけたと私はそれがmoveMouseTo
からコードを実行することにより、インターンで動作するように管理さ
Executing: [mousemove: 7 false])
WARN - Exception thrown
org.openqa.selenium.UnsupportedCommandException: mouseMoveTo
を私たちはマウスイベントが壊れているような機能を持っていたので、私はちょうど、brokenMouseEvents
//if (this.capabilities.brokenMouseEvents) {
if(element){
return element.getPosition().then(function(position){
return self.execute(simulateMouse, [ {
action: 'mousemove',
position: position,
element: element,
xOffset: xOffset,
yOffset: yOffset
} ]).then(function (newPosition) {
self._lastMousePosition = newPosition;
});
})
} else{
return self.execute(simulateMouse, [ {
action: 'mousemove',
position: self._lastMousePosition,
element: element,
xOffset: xOffset,
yOffset: yOffset
} ]).then(function (newPosition) {
self._lastMousePosition = newPosition;
});
}
//}
しかしmoveMouseTo()
は、要素のためにスクロールすることも使用することができ、またmoveMouseTo()
関数はノードモジュールで定義されているので、我々はそれを使用することはできません、と私たちは実行しようとすると、それは失敗しますので、これは、スクロールを壊すことJenkins
のテスト。 別の考えでは、私たちがのFirefoxに対して実行している場合を処理するためのラッパー関数を作成することになると思います。その場合は別のコードを実行し、他のブラウザではmoveMouseTo()
この場合、スクロールの問題を解決する方法がわかりません。
誰にも分かりませんか?
ありがとうございます!