gpt4 book ai didi

python - 为什么 selenium 的 move_by_offset 函数在执行之前有时会等待(Python/Chrome)

转载 作者:行者123 更新时间:2023-12-04 13:43:36 29 4
gpt4 key购买 nike

我在 Chrome 中使用 Selenium 和 Python 来自动化一些测试,其中一部分是移动鼠标,因为我创建了很多测试,我在线程上并行运行它们。唯一真正给我带来问题的代码如下:

action =  selenium.webdriver.common.action_chains.ActionChains(driver)
action.move_by_offset(x,y)
action.perform()

出于某种原因,有时上述操作至少需要 5 秒,例如5.03123 秒,执行。当有延迟时,它总是仅略高于 5,但绝不会低于 5,这让我相信某处有 time.sleep(5)。我已经检查了 selenium actionchains 文件并注释掉了:
self.w3c_actions.key_action.pause()

万一这是罪魁祸首,但没有显着变化。

一个重要的注意事项是,当我的窗口最小化并且我有多个线程正在运行时,这似乎是一个更大的问题/更频繁地发生。

我非常不知道为什么会发生这种情况,并尝试了许多不同的事情/测试,但基本上无济于事。非常感谢任何和所有帮助。

如果您需要任何其他信息,或者我应该运行其他特定测试,请告诉我,我会的。

最佳答案

您可以覆盖该方法:

class ActionChainsChild(ActionChains):
def move_by_offset(self, xoffset, yoffset):
"""
Moving the mouse to an offset from current mouse position.

:Args:
- xoffset: X offset to move to, as a positive or negative integer.
- yoffset: Y offset to move to, as a positive or negative integer.
"""
if self._driver.w3c:
self.w3c_actions.pointer_action.move_by(xoffset, yoffset)
#self.w3c_actions.key_action.pause()
else:
self._actions.append(lambda: self._driver.execute(
Command.MOVE_TO, {
'xoffset': int(xoffset),
'yoffset': int(yoffset)}))
return self

实用链接:

https://seleniumhq.github.io/selenium/docs/api/py/_modules/selenium/webdriver/common/action_chains.html

https://www.thedigitalcatonline.com/blog/2014/05/19/method-overriding-in-python/

关于python - 为什么 selenium 的 move_by_offset 函数在执行之前有时会等待(Python/Chrome),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53131407/

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