rpa_uia_getElementRect
获取元素矩形范围,若成功获取返回RECT类型,否则返回None,矩形的坐标为屏幕坐标
1. 函数
rpa_uia_getElementRect(appId, elementId, index=0, waitElement=True)
- appId:字符串类型,程序Id
- elementId:字符串类型,通过捕获元素功能保存的元素Id
- index:整数类型,元素序号,若捕获到的元素存在多个时,标识操作的元素序号,索引从0开始
- waitElement:bool类型,是否等待元素出现。若值为True,函数先等待元素出现,再执行操作;若值为False,函数直接执行操作。默认等待10秒
2. 返回值
返回元素矩形范围,屏幕坐标,若成功获取返回RECT类型,否则返回None,通过rpa_getLastErrorCode()获取错误码,rpa_getLastErrorMsg()获取错误信息。
3. 示例
# 连接已启动咚咚
appId = rpa_uia_connectApp(pname='jm_dd_workbench.exe')
# 点击聊天窗口
rectMain = rpa_uia_getElementRect(appId, "咚咚主窗口", index=0, waitElement=True)
rectChat = rpa_uia_getElementRect(appId, "聊天记录窗口", index=0, waitElement=True)
if rectMain is None or rectChat is None:
rpa_showMsgBox('获取咚咚窗口矩形范围失败!')
rpa_exit()
# 计算咚咚聊天输入框点击位置
distance = (rectMain.bottom - rectChat.bottom)/2.0
offsety = int(rectChat.height()/2.0 + distance)
rpa_mouse_clickInput(appId, "聊天记录窗口", button=3, type=0, index=0, waitElement=True, offset=(0, offsety))
rpa_mouse_clickInput(appId, "聊天记录窗口", button=0, type=0, index=0, waitElement=True, offset=(0, offsety))
# 从参数中读取内容,写入剪贴板
text = rpa_view_readParam('内容')
rpa_writeClipboard('pin:%s ' % pin + text)
# 发送Ctrl + C按键粘贴
rpa_sendKeys('^v')
rpa_delay(0.5)
# 发送Enter键
rpa_sendKeys('{ENTER}')
rpa_delay(0.5)
其中,【咚咚主窗口】和【聊天记录窗口】为捕获的咚咚窗口元素,如下图:
RECT对象支持的操作参考代码:
# 获取矩形范围,并输出
rect = rpa_uia_getElementRect(appId, "Window1", index=0, waitElement=True)
print(rect)
# 获取宽度
print(rect.width())
# 获取高度
print(rect.height())
# 获取中心点,返回POINT对象
print(rect.mid_point())
# 获取左、上、右、下坐标
print(rect.left)
print(rect.top)
print(rect.right)
print(rect.bottom)
输出结果为:
2021-02-08 16:10:33 [INFO] - (L150, T150, R896, B667)
2021-02-08 16:10:33 [INFO] - 746
2021-02-08 16:10:33 [INFO] - 517
2021-02-08 16:10:33 [INFO] - x 523 y 408
2021-02-08 16:10:33 [INFO] - 150
2021-02-08 16:10:33 [INFO] - 150
2021-02-08 16:10:33 [INFO] - 896
2021-02-08 16:10:33 [INFO] - 667