2012-05-08 6 views
2

Selenium Webdriverのコード(Ubuntu 11.10、Xvfb + Selenium 2.19.0 & Firefox 10.0.2)を継承しました。これは、利用可能な時間に襲ってきた唯一の組み合わせです実際にインストールされます)。Selenium WebDriverでマウスの速度を上げる

注:ほとんどのドキュメントに焦点が当てられているような、古いSelenium 1.0システムは使用しません。

私のテストは非常に遅く実行されています。簡単なマウスの動きは0.5秒以上かかる。

(?!文書化されていない)を/ tmp/native_ff_events_logファイルを見て、私はそれぞれのマウス操作がより小さな部分に分割されていることを見つける:

D14:14:37:070 cpp/webdriver-interactions/interactions_linux_mouse.cpp(307) ---------- starting mouseMoveTo: 0x7fbad37546a0--------- 
D14:14:37:070 cpp/webdriver-interactions/interactions_linux_mouse.cpp(328) From: (39, 169) to: (350, 86) 
D14:14:37:070 cpp/webdriver-interactions/interactions_linux_mouse.cpp(329) Distance: 321 steps: 64 
D14:14:37:070 cpp/webdriver-interactions/interactions_linux_mouse.cpp(339) Moving to: (39, 169) 
D14:14:37:070 cpp/webdriver-interactions/interactions_linux_mouse.cpp(231) Type: motion time: 401697248 
D14:14:37:080 cpp/webdriver-interactions/interactions_linux_mouse.cpp(339) Moving to: (43, 167) 
D14:14:37:080 cpp/webdriver-interactions/interactions_linux_mouse.cpp(231) Type: motion time: 401697258 
D14:14:37:090 cpp/webdriver-interactions/interactions_linux_mouse.cpp(339) Moving to: (48, 166) 
D14:14:37:090 cpp/webdriver-interactions/interactions_linux_mouse.cpp(231) Type: motion time: 401697268 
D14:14:37:100 cpp/webdriver-interactions/interactions_linux_mouse.cpp(339) Moving to: (53, 165) 
D14:14:37:100 cpp/webdriver-interactions/interactions_linux_mouse.cpp(231) Type: motion time: 401697278 
D14:14:37:110 cpp/webdriver-interactions/interactions_linux_mouse.cpp(339) Moving to: (58, 163) 

類似し、減速いくつかの意図的があるようですが表示されます従来のSeleniumのsetMouseSpeed(pixels)にドラッグ&ドロップ操作を分割して、10ピクセルのサブビューにします。

ドラッグアンドドロップを使用していません。また、私はこの方法がもはや私に利用できないと信じています。

私はこれらのサブマップが必要であるとは思わないし、それらを削除するとかなりのスピードを出すかもしれません。

Selenium 2のWebdriverでマウスステップのサイズを増やす方法はありますか?

答えて

2

Oddthinkingは、とてもゆっくりと)私はmouseMoveToを(作る2つの値を見つけ、ソースコードを見て:

const int stepSizeInPixels = 5; 

http://code.google.com/p/selenium/source/browse/trunk/cpp/webdriver-interactions/interactions_linux_mouse.cpp?r=13310#278

const int timePerEvent = 10 /* ms */; 

http://code.google.com/p/selenium/source/browse/trunk/cpp/webdriver-interactions/interactions_linux_mouse.cpp?r=13310#270

残念ながら、に方法はありませんハードコーディングされているため、この値を実行時レベルで変更してください。

マウスをポイントAからポイントBに移動する必要がある場合、10ms間隔の5ピクセルステップを使用します。私のテストケースからの一歩は、簡単なクリック()を行うのに約1.2秒かかっていた。

fireSkyの拡張機能を再コンパイルしてstepSizeInPixelsを50に、timePerEventを5msに変更した。私のテストケースは、元の拡張子よりも18秒8秒もかかりません。

関連する問題