pyautogui typewrite() 写入 shell 而不是点击 input/document
pyautogui typewrite() writes to shell instead of clicked input/document
我正在关注 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')
在线程休眠时手动点击文本文档或输入,文本按要求输入。
可能是什么问题?
原来 OSX 中存在与 click()
相关的错误。这是解决方法:
- 打开 pyautogui 包目录中的
__init__.py
文件(使用 this answer. 找到您的 Python 包的位置
- 在第 510 行(在
click()
函数中),将 platformModule._multiClick()
的第四个参数从 3
更改为 clicks
(无引号)。所以正确的调用是 platformModule._multiClick(x, y, button, clicks)
- 保存编辑后的文件。
有一个 open PR 可以解决这个问题。
我正在关注 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')
在线程休眠时手动点击文本文档或输入,文本按要求输入。
可能是什么问题?
原来 OSX 中存在与 click()
相关的错误。这是解决方法:
- 打开 pyautogui 包目录中的
__init__.py
文件(使用 this answer. 找到您的 Python 包的位置
- 在第 510 行(在
click()
函数中),将platformModule._multiClick()
的第四个参数从3
更改为clicks
(无引号)。所以正确的调用是platformModule._multiClick(x, y, button, clicks)
- 保存编辑后的文件。
有一个 open PR 可以解决这个问题。