【问题标题】:How to click relative to a window/application in python and how to handle multiple scripts that click?如何在 python 中相对于窗口/应用程序单击以及如何处理单击的多个脚本?
【发布时间】:2020-04-25 07:49:24
【问题描述】:

有什么方法可以相对于打开的窗口进行点击?例如,在谷歌浏览器打开的标签的右/上/左/下单击一组像素?我知道如何使用绝对坐标单击,或单击与图像文件匹配的内容,但我无法找到有关相对单击的任何内容。

对此的另一部分 - 在使用鼠标或键盘输入命令的计算机上自动执行某些过程时,如果您运行两个或多个相同的脚本,命令是否有可能相互中断?就像您移动鼠标然后单击一样,但是另一个脚本在允许单击第一个之前再次移动它?有一个简单的解决方案吗?我首先想到的是使用类似于在操作系统中处理多个进程的排队过程。

【问题讨论】:

  • 第二个问题:是的,两个脚本同时可能会互相打断。只是不要同时运行,而是一个接一个地运行。
  • 在窗口上你可以使用PyGetWindow 来获取窗口的位置。同一作者创建了pyautogui,它可以控制鼠标和键盘,因此可以在任何地方单击。在 Linux 上,您必须使用外部程序(如 wmctrl)来获取窗口的位置。最终你可以尝试使用模块XLib(或类似的方式来获取它)。我不使用 Mac,但它可能也有wmctrl。但我不知道可以在 Chrome/Firefox 中获取选项卡位置的程序/模块。

标签: python automation


【解决方案1】:

您可以使用库 pyautogui。 我在这里举个例子:

import pyautogui as pya
start = pya.locateCenterOnScreen('start.png')#If the file is not a png file it will not work
print(start)
pya.moveTo(start)#Moves the mouse to the coordinates of the image
#even you can make click with
pya.click(button='left',clicks=2,x=start.x,y=start.y) # you can do two click on the image

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 2016-10-13
    • 1970-01-01
    • 2012-10-09
    • 2020-05-09
    • 2010-11-03
    • 2017-02-21
    • 1970-01-01
    • 2013-03-07
    相关资源
    最近更新 更多