让我用中文为您介绍 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")
注意事项:
- Region 的坐标系统是以屏幕左上角为原点 (0,0)
- offset 的值可以是正数也可以是负数:
- 正的 x 值向右移动
- 负的 x 值向左移动
- 正的 y 值向下移动
- 负的 y 值向上移动
- 建议在进行图像识别时,尽量缩小搜索区域(Region),这样可以:
- 提高识别速度
- 减少误匹配
- 提高脚本的稳定性
这些概念的灵活运用可以帮助您更好地构建自动化脚本,特别是在处理需要精确定位的场景时非常有用。
标签:200,sikulix,region,click,区域,location,Region,png From: https://blog.csdn.net/u011027104/article/details/143970538