gpt4 book ai didi

selenium - 使用 Selenium WebDriver 加速鼠标

转载 作者:行者123 更新时间:2023-12-04 05:47:26 29 4
gpt4 key购买 nike

我继承了一些 Selenium Webdriver 代码(Ubuntu 11.10、Xvfb + Selenium 2.19.0 和 Firefox 10.0.2,因为这是我在实际安装的可用时间内能够找到的唯一组合。)

注意:我没有使用旧的 Selenium 1.0 系统,大多数文档似乎都集中在这个系统上。

我的测试运行非常缓慢。简单的鼠标移动需要半秒多的时间。

查看(未记录?!)/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 个像素的子移动。

我没有使用拖放。另外,我相信这种方法不再适用于我。

我不认为这些子 Action 是必要的,删除它们可能会大大加快运行速度。

有没有办法增加 Selenium 2 的 Webdriver 中鼠标步的大小?

最佳答案

奇怪的是,查看源代码我发现两个值使 mouseMoveTo() 变得如此缓慢:

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 点时,它使用 10 毫秒间隔的 5 像素步长。我的测试用例的一个步骤是执行一个简单的 click() 大约需要 1.2 秒

我重新编译了 firefox 扩展,将 stepSizeInPixels 更改为 50,将 timePerEvent 更改为 5ms。现在我的测试用例需要 18 秒,比原始扩展少 8 秒。

关于selenium - 使用 Selenium WebDriver 加速鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10501313/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com