首页 > 其他分享 >sikulix的region,location,和offset

sikulix的region,location,和offset

时间:2024-11-22 12:44:36浏览次数:3  
标签:200 sikulix region click 区域 location Region png

让我用中文为您介绍 SikuliX 中这几个重要概念的用法:

1. Region(区域)

Region 是 SikuliX 中最基本的概念之一,表示屏幕上的一个矩形区域。

# 创建 Region 的几种方式
# 方式1:指定 x, y, width, height
region = Region(x, y, width, height)

# 方式2:从现有区域创建子区域
sub_region = region.right(200)    # 右边200像素区域
sub_region = region.left(200)     # 左边200像素区域
sub_region = region.above(200)    # 上方200像素区域
sub_region = region.below(200)    # 下方200像素区域

# 常用方法
region.find("image.png")          # 在区域内查找图片
region.wait("image.png", 10)      # 等待图片出现,最多10秒
region.exists("image.png")        # 检查图片是否存在
region.click()                    # 点击区域中心
region.text()                     # 获取区域内的文本

2. Location(位置)

Location 表示屏幕上的一个具体坐标点。

# 创建 Location
# 方式1:直接指定坐标
loc = Location(x, y)

# 方式2:从 Region 或 Pattern 获取
loc = region.getCenter()          # 获取区域中心点
loc = find("image.png").getTarget()  # 获取匹配图片的目标点

# 常用操作
loc.click()                       # 点击该位置
loc.doubleClick()                # 双击该位置
loc.hover()                      # 将鼠标移动到该位置

3. Offset(偏移)

Offset 用于在现有位置基础上进行相对位置移动。

# 使用 offset 进行相对定位
# 方式1:直接使用偏移值
click(Pattern("image.png").targetOffset(20, 30))  # 点击匹配图片右侧20像素,下方30像素的位置

# 方式2:链式操作
loc = find("image.png").getTarget()
loc.offset(20, 30).click()       # 相对于找到的位置偏移后点击

# 实际应用示例
def click_login_button():
    # 找到用户名输入框,然后向下偏移100像素点击登录按钮
    username_field = find("username_field.png")
    username_field.offset(0, 100).click()

常见组合使用场景

# 场景1:在特定区域内查找并点击
login_region = Region(100, 100, 400, 300)
if login_region.exists("login_button.png"):
    login_region.click("login_button.png")

# 场景2:相对位置点击
# 比如在找到的图片右侧10像素处点击
click(Pattern("icon.png").targetOffset(10, 0))

# 场景3:定义工作区域
workspace = Region(0, 0, 1920, 1080)  # 全屏工作区
top_menu = workspace.top(100)         # 顶部菜单区域
side_bar = workspace.left(200)        # 左侧边栏区域

# 场景4:等待并点击
region = Region(100, 100, 500, 500)
if region.wait("button.png", 10):     # 等待10秒
    region.click("button.png")

注意事项:

  1. Region 的坐标系统是以屏幕左上角为原点 (0,0)
  2. offset 的值可以是正数也可以是负数:
    • 正的 x 值向右移动
    • 负的 x 值向左移动
    • 正的 y 值向下移动
    • 负的 y 值向上移动
  3. 建议在进行图像识别时,尽量缩小搜索区域(Region),这样可以:
    • 提高识别速度
    • 减少误匹配
    • 提高脚本的稳定性

这些概念的灵活运用可以帮助您更好地构建自动化脚本,特别是在处理需要精确定位的场景时非常有用。

标签:200,sikulix,region,click,区域,location,Region,png
From: https://blog.csdn.net/u011027104/article/details/143970538

相关文章

  • 2024-2025 ICPC, NERC, Southern and Volga Russian Regional Contest B. Make It Equ
    因为和题解有所区别,所以写一发题解增长见识。题面B.MakeItEqual给你一个大小为\(n\)的整数数组\(a\)。数组元素的编号从\(1\)到\(n\)。您可以执行以下任意次数的操作(可能为0次):从\(1\)到\(n\)中选择一个索引\(i\);将\(a_i\)减少\(2\),并将\(a_{(i\bmo......
  • Flutter手势组件(4):MouseRegion
    一、MouseRegion介绍在我们进行h5开发的时候,我们都知道css有一个hover来改变元素的样式,那么我们在Flutter中也可以通过MouseRegion是监听区域内鼠标的进入和退出以及移动轨迹。二、什么情况下使用MouseRegion?MouseRegion常用于Flutter的Web开发或者桌面程序中,当我们鼠标需要......
  • The 2024 ICPC Asia Nanjing Regional Contest
    Preface因为最近大家都有考试啥的,实在太久没训练了,只好在成都到郑州的火车上VP了一场顶着喧闹的车厢以及电脑只能放在腿上打的巨大Debuff,成功打出7题巨大罚时不过可惜的是4h后就没出题了,剩下的C,F瞪了半天是一个不会,甚至赛后看C的题解也搞不明白,只能说计数苦手是这......
  • A Method of Setting the LiDAR Field of View in NDT Relocation Based on ROI
    基于ROI的NDT重定位激光雷达视场设置方法期刊:MDPI单位:山东理工大学摘要:在高精度地图自动导航的重定位图中,激光雷达布放和视场选择起到检测车辆相对位置和位姿的作用。当激光雷达视场被遮挡或激光雷达位置错位时,很容易导致重定位丢失或重定位精度低。针对遮挡视场过大时ND......
  • SciTech-BigDataAIML-Statistical Model-Topics Model主题模型-LDA(Latent Dirichilet
    SciTech-BigDataAIML-Algorithm-Heuristic启发式-StatisticalModel(统计概率模型)的一种TopicsModel(主题模型)LDA(LatentDirichiletAllocation)TopicsModel主题模型。LDA(LatentDirichiletAllocation,潜在狄利克雷分布)是一种TopicsModel(主题模型),用于在Lar......
  • halcon中将xld轮廓或者region区域绘制在图像上并保存
    1)单通道图像的绘制draw_circle(WindowHandle,Row,Column,Radius)gen_circle(Circle,Row,Column,Radius)paint_region(Circle,Image,ImageR,0,'fill')paint_region(Circle,Image,ImageG,255,'fill')paint_region(Circle,Image,ImageB,......
  • The 2022 ICPC Asia Hangzhou Regional Programming Contest
    Preface久违地线下训练,没想到前年的比赛还有没打过的漏网之鱼这场由于一个中期题G被看出来是去年暑假前集训做过的原,导致题目难度跨度有点大最后一共出了8题,J几何的思路其实出的大差不差了,赛后改了改就过了A.ModuloRuinstheLegend首先转化下题意,令\(A=n,B=\frac{n......
  • The 2022 ICPC Asia Hangzhou Regional Programming Contest C
    C.NoBugNoGame\(很简单的一个dp\)\(在枚举到当前为i的时候假设当前容量为j对其进行转移\)点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineall(x)x.begin(),x.end()#definerall(x)x.rbegin(),x.rend()#definepbpush_back#definepiipair<......
  • The 2022 ICPC Asia Hangzhou Regional Programming Contest
    A.ModuloRuinstheLegend\(题目即求(sum+n*s+(n+1)*n/2*d)\equiv\modm的最小值\)\(由裴蜀定理可得n*s+(n+1)*n/2*d=gcd(n,(n+1)*n/2)\)\(令p=gcd(n,n*(n+1)/2)\)\(可以表示为(sum+k*p+t*m)\equiv\modm\)\(令g=gcd(p,m)\)\((sum+g*z)%m\)\(sum+g*z>=m时存在最小值\)\(......
  • 88_api_intro_location_internationaliplocation
    国际IP地址定位API数据接口兼容IPv4与IPv6兼容,IPv4/IPv6,全球IP地址定位。![gugudata_api_cover](/Users/Parry/Library/MobileDocuments/iCloudcomgl9~markdowns/Documents/GuGuData/API/api_cover_location_internationaliplocation.png)1.产品功能支持全球IP......