NOTES 邮箱收件箱固定点击第一封邮件
随着产品的推广,我们与银行业务的深入,在很多项目中,我们遇到了 IBM 的产品 NOTES 邮箱,起初 6.0 版本我们对控件的不支持,到现在 8.0 对 NOTES 邮箱已经可以说支持较好。
在抓取 NOTES 邮箱对收件箱时,只能抓取到整框,下面就是如何判断第一封邮件是否有附件并且点击进入。
def get_header(win_class=r'NOTES',win_name=r'',selector=[],header=''):
ctrl = iautomation.get_control(win_class,win_name,selector)
ctrl = automation.Control.CreateControlFromControl(ctrl)
cnt = 0
while True:
ctrl = ctrl.GetnextSiblingControl()
print(ctrl)
if ctrl.ControlTypeName == 'HeaderControl' and ctrl.Name == header:
return [ctrl.Name,ctrl.BoundingRectangle]
print([ctrl.Name,ctrl.BoundingRectangle])
cnt = cnt + 1
if cnt > 20:
break
传入的参数依次是,类,标题名,selector 用鼠标点击当前收件箱,复制 selector 即可。(若处理多个邮箱,标题名可以为空。避免激活窗口错误)
打印出来的 ctrl 是这样的:(无法拿出来数据,只能拍照,标记的部分)
可以看到,当拿到邮件时,ControlType 会变成 TreeItemControl
ctrl.BoundingRectangle 这个函数返回了 4 数字,就是我们拿到这一串字符到坐标。随后拿出来 X 和 Y,点击即可准确到进入到邮件中。
def move_click(t,x,y,tm):
ics.mouse_click(t,x,y,times=tm)
传入的参数分别是窗口标题名,X 轴坐标,Y 轴坐标,以及点击的次数
即在发件箱的页面,我们先循环里面的内容,判断出来第一封邮件的位置,返回 X,Y 的坐标,利用鼠标点击去进入第一封邮件。
最后感谢吴总的支持。
👍 👍
👍👍