【问题标题】:python - fastest way to click mousepython - 单击鼠标的最快方法
【发布时间】:2021-04-05 07:25:22
【问题描述】:

我正在尝试使用 pyautogui 在 python 中创建一个自动点击机器人,但这需要太多时间(它循环运行,并且 xPos/yPos 每次都会更改)。有什么更快的方法?感谢您的帮助。

pyautogui.PAUSE = 0.001
pyautogui.click(xPos,yPos,button = 'left')

【问题讨论】:

    标签: python click mouse pyautogui


    【解决方案1】:

    你可以使用pynput:

    from pynput import mouse
    from pynput.mouse import Controller, Button
    import time
    
    mouse = Controller()
    one = time.time_ns()
    for i in range(1000):
        mouse.click(Button.left)
    
    two = time.time_ns()
    
    print(two-one)
    

    使用此设置,我可以在 0.53 秒内执行 1000 次点击。

    【讨论】:

    • 非常感谢我将速度从 2 分钟提高(或降低)到 10 秒!
    • @ItayTsuk 如果我的回答有帮助,您可以通过单击箭头下方的复选标记来投票/接受它。
    • 它说由于我的声望少于 15 个,我无法投票,抱歉
    【解决方案2】:

    我正在测试三个库:Pyautogui、Mouse 和 Pynput。 链接到库:

    • Pyautogui 最后更新。 2021 年 10 月
    • Mouse 最后更新。 2021 年 4 月
    • Pynput 最后更新。 2021 年 10 月

    下面的代码和结果:

    PYAUTOGUI 版本:

    import pyautogui
    def click_pyautogui(x, y, button):
        pyautogui.moveTo(x, y)
        pyautogui.click(button=button)
    

    鼠标版本:

    import mouse
    def click_mouse(x, y, button):
        mouse.move(x, y, absolute=True)
        mouse.click(button=button)
    

    PYNPUT 版本:

    from pynput.mouse import Button, Controller
    def click_pynput(x, y, button):
        mouse = Controller()
        mouse.position = (x, y)
        button = Button.left if button=='left' else Button.right
        mouse.click(Button.left)
    

    包装器:

    def click(x, y, button):
        # pyautogui
        # click_pyautogui(x, y, button)
    
        # mouse
        # click_mouse(x, y, button)
    
        # pynput
        click_pynput(x, y, button)
    
    import timeit
    if __name__ == '__main__':
        print(timeit.timeit("click(random.randrange(100), random.randrange(100), 'left')", number=100, globals=locals()))
    

    RESULTS 100 个周期的时间(平均 3 个,变化非常小):

    • Pyautogui:22.07 秒
    • 鼠标:0.16 秒
    • 输入:0.20 秒

    鼠标看起来是最快的图书馆!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      相关资源
      最近更新 更多