【问题标题】:Sikuli Image differentiaton斯库里图像区分
【发布时间】:2014-02-12 06:56:19
【问题描述】:

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

【问题讨论】:

  • 更多信息会很有帮助。有 2 个答案,没有 cmets\updates..

标签: button click sikuli


【解决方案1】:

在您感兴趣的窗口中找到您感兴趣但在另一个窗口中不存在的内容(例如标题的一部分),扩展匹配区域以包含您想要的按钮但不包含其他按钮,然后在其中搜索按钮地区。

【讨论】:

  • 您必须比“它不起作用”更具体。你走了多远?你得到什么结果?编辑您的问题以显示您目前使用的代码。
【解决方案2】:

我想到了几个选项:

  1. 通过预定义区域(region.click(okButton1) 或
  2. )将搜索限制在屏幕的特定区域
  3. 您可以尝试使用 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)
    
  4. 如果在您要单击的“确定”按钮附近可靠地出现任何明显的东西,您可以单击 (uniqueThing).targetOffset(pixelsX,pixelsY)。

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

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 1970-01-01
    • 2017-04-13
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多