2

いくつかの Selenium Webdriver コードを継承しました (Ubuntu 11.10、Xvfb + Selenium 2.19.0、および Firefox 10.0.2。実際にインストールできる時間内に見つけた唯一の組み合わせであるため)。

注: 私は古い 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)

setMouseSpeed(pixels)ドラッグアンドドロップ操作を10ピクセルのサブモーションに分割するレガシーSeleniumの.

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

私はこれらのサブムーブメントが必要だとは思わず、それらを削除することで実行速度が大幅に向上する可能性があります。

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

4

1 に答える 1

3

奇妙な考えで、ソース コードを見て、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 ステップで、単純な click() を実行するのに約 1.2 秒かかりました

stepSizeInPixels を 50 に、timePerEvent を 5ms に変更して、Firefox 拡張機能を再コンパイルしました。これで、テストケースの所要時間は 18 秒になり、元の延長より 8 秒短縮されました。

于 2012-08-27T17:03:05.857 に答える