【发布时间】:2014-02-12 06:56:19
【问题描述】:
我有一个案例,两个窗口上有一个确定按钮。我想单击前一个窗口上的 OK 按钮,但使用 Sikuli 我无法做到。我尝试使用 Python 脚本使用 Y 坐标获取最近的按钮。但我猜它不起作用。
【问题讨论】:
-
更多信息会很有帮助。有 2 个答案,没有 cmets\updates..
我有一个案例,两个窗口上有一个确定按钮。我想单击前一个窗口上的 OK 按钮,但使用 Sikuli 我无法做到。我尝试使用 Python 脚本使用 Y 坐标获取最近的按钮。但我猜它不起作用。
【问题讨论】:
在您感兴趣的窗口中找到您感兴趣但在另一个窗口中不存在的内容(例如标题的一部分),扩展匹配区域以包含您想要的按钮但不包含其他按钮,然后在其中搜索按钮地区。
【讨论】:
我想到了几个选项:
您可以尝试使用 sorted() 对两个 OK 按钮的 y 坐标(如果它们彼此左右出现)或 x 坐标(如果它们彼此上下出现)进行排序,并且然后像这样点击感兴趣的——
#to find top-most OK Button
def byY(match):
return match.y
okButtons = list([x for x in findAll(OkButtonPic)]) #make a list of the OK Buttons
TopOkButton = sorted(okButtons, key=byY)[0] #sort them according to Y values
click(topOkButton)
#to find left-most OK button
def byX(match):
return match.x
okButtons = list([x for x in findAll(OkButtonPic)])
leftOkButton = sorted(okButtons, key=byX)[0]
click(leftOkButton)
如果在您要单击的“确定”按钮附近可靠地出现任何明显的东西,您可以单击 (uniqueThing).targetOffset(pixelsX,pixelsY)。
如果您要单击的“确定”按钮位于现在已覆盖的窗口中,则还有其他问题需要处理,首先使窗口可见,但这听起来不是您的问题真正要问的...
【讨论】: