【发布时间】:2019-09-11 21:55:18
【问题描述】:
我关注Chapter 18 of Automate the Boring Stuff with Python。我在 OS X 上。
我正在尝试使用pyautogui 单击文本输入或文本文档,然后输入文本。
我在 shell 中输入以下内容((370, 80) 是我的 Chrome 地址栏的坐标):
pyautogui.click(370,80); pyautogui.typewrite('Hello world!')
click() 似乎没有按预期工作。当我单击输入时,它会突出显示输入中的文本,但即使我在单击后手动输入,文本也会显示在 shell 中。运行以上行的结果如下图所示:
position、moveTo、moveRel 和 dragTo 等其他方法按预期工作。
如果我运行time.sleep(5); pyautogui.typewrite('test') 并在线程休眠时手动单击文本文档或输入,则可以根据需要输入文本。
可能是什么问题?
【问题讨论】:
-
您可能需要稍许延迟才能让 Chrome 窗口有时间来到最前面并开始接收键盘事件。
-
@jasonharper 我已经尝试过
pyautogui.click(370,80); time.sleep(3); pyautogui.typewrite('Hello world!'),并且在延迟 3 秒后,文本仍会写入 shell。 -
延迟期间Chrome真的走到了前面吗?
-
@jasonharper 它没有。地址栏中的文本会突出显示,但 shell 窗口仍保留在 Chrome 的前面。
-
不确定这是否相关,但是当我运行
pyautogui命令时,我的 Dock 中会出现一个 Python 图标。右键单击此图标会弹出一个菜单,显示应用程序没有响应。但是,我的pyautogui和其他 Python 命令仍然可以正常工作(除了上述问题)。