Button Sikuli图像微分

Button Sikuli图像微分,button,click,sikuli,Button,Click,Sikuli,我有一个案例,两个窗口上有一个OK按钮。我想点击前一个窗口上的OK按钮,但使用Sikuli我无法做到。我尝试使用Python脚本使用Y坐标获取最近的按钮。但我猜它不起作用。在窗口中找到你感兴趣但不在另一个窗口中的东西(例如标题的一部分),扩展匹配区域以包含你想要的按钮,但不包含另一个按钮,然后在该区域中搜索按钮。想到了几个选项: 通过预先定义区域(region.click(okButton1))或将搜索限制在屏幕的特定区域 您可以尝试使用sorted()对两个“确定”按钮的y坐标(如果它们显示在

我有一个案例,两个窗口上有一个OK按钮。我想点击前一个窗口上的OK按钮,但使用Sikuli我无法做到。我尝试使用Python脚本使用Y坐标获取最近的按钮。但我猜它不起作用。

在窗口中找到你感兴趣但不在另一个窗口中的东西(例如标题的一部分),扩展匹配区域以包含你想要的按钮,但不包含另一个按钮,然后在该区域中搜索按钮。

想到了几个选项:

  • 通过预先定义区域(region.click(okButton1))或将搜索限制在屏幕的特定区域
  • 您可以尝试使用sorted()对两个“确定”按钮的y坐标(如果它们显示在彼此的左侧和右侧)或x坐标(如果它们显示在彼此的上方和下方)进行排序,然后像这样单击感兴趣的按钮--

  • 如果在要单击的“确定”按钮附近可靠地显示了任何不同的内容,则可以单击(uniqueThing).targetOffset(像素x,像素x)


  • 如果要单击的“确定”按钮位于现在已覆盖的窗口中,则需要处理其他问题,首先使窗口可见,但这听起来并不是您的问题真正要问的问题……

    您必须比“它不工作”更具体一些。你的成绩如何?结果如何?编辑你的问题以显示你迄今为止使用的代码。更多信息将非常有用。共有2个答案,没有评论\更新。。
    #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)