【发布时间】:2020-01-12 10:55:09
【问题描述】:
我正在通过 Python 构建一个 Selenium ActionChain 来保存和执行键盘和鼠标输入。当 ActionChain 只包含几个击键(通过action.key_down() 或action.key_up())时,它的执行时间远低于 0.01 秒。只要我添加一个光标移动(使用action.move_by_offset()),执行时间就会达到 0.3-0.4 秒。
首先,使鼠标输入变得如此昂贵的技术差异是什么?
有没有更好的基于 Selenium 的替代方案,或者我应该使用不同的工具进行实时浏览器输入?
(对于上下文,我正在使用 Selenium 在 HTML5 多人网络游戏上运行强化学习模型,因此我需要尽快执行操作,否则我的机器人的反应时间会受到影响。我正在使用 Firefox 网络驱动程序 - 我还尝试了 Chrome,但发现 geckodriver 的鼠标输入速度大约是鼠标输入的两倍。理想情况下,我需要让我的所有输入执行在大约 0.01 秒内运行,这样它就不会减慢我的模型。)
【问题讨论】:
-
FWIW:
key_up()和move_by_offset()在 common/action_chains.py 中。第一种方法指向common/actions/key_actions.py;第二个到/common/actions/pointer_actions.py。但我对实现细节的了解还不够,无法回答为什么性能更高。
标签: python selenium selenium-webdriver