全部产品

如何使用win32模块

更新时间:2020-09-25 10:53:45

win32模块是用来向用户提供一系列操作Windows控件的SDK,让用户通过简单的参数和方法调用来实现一些复杂的操作。要使用win32模块,需要使用rpa.ui.win32进行操作。在学习此课程前请点击下方链接,熟悉API文档,SDK的具体功能作用在此不再赘述,传送门:
教程内容:本教程包含两节内容,分别为窗口操作、应用控件操作

案例介绍


以IE浏览器为例,创建浏览器窗口,执行窗口相关的一系列操作。

案例实现

新建应用

1.登陆studio,选择新建云端工程 -> 选择 基础编码工程模版 -> 点击【确定】,进入开发主界面1 23

代码编写

本段代码提供了一个简单的浏览器操作代码示例,按照示例进行代码敲写,示例代码的注释(带有“#”的行数为注释行)中详细解释了语句及SDK的作用,带有print语句的操作执行的结果在日志中查看,操作所包含win32的sdk有:win_activate、win_close、catch、win_minimize、win_maximize、win_exists

  1. from rpa.core import *
  2. from rpa.utils import *
  3. import rpa4 as rpa # 使用V3引擎
  4. import win32
  5. def start():
  6. # Window窗口操作
  7. window_operation()
  8. def window_operation():
  9. urls=['www.taobao.com','www.baidu.com','www.aliyun.com']
  10. for url in urls:
  11. #依次创建 “淘宝”,“百度”,“阿里云”网页
  12. rpa.app.ie.create(url)
  13. sleep(1)
  14. # # 依次激活各个网页
  15. rpa.ui.win32.win_activate('淘宝网')
  16. sleep(1)
  17. rpa.ui.win32.win_activate('百度')
  18. sleep(1)
  19. rpa.ui.win32.win_activate('阿里云')
  20. # 关闭打开的页面
  21. rpa.ui.win32.win_close('阿里云')
  22. sleep(1)
  23. rpa.ui.win32.win_close('百度')
  24. sleep(1)
  25. rpa.ui.win32.catch('淘宝网',mode='start') #捕获根据标题淘宝页面,mode默认为start可不填
  26. #最小化窗口
  27. rpa.ui.win32.win_minimize('淘宝网')
  28. sleep(1)
  29. #最大化窗口
  30. rpa.ui.win32.win_maximize('淘宝网')
  31. sleep(1)
  32. #判断窗口是否存在,日志中输出如果为True则窗口存在
  33. exist = rpa.ui.win32.win_exists('淘宝网')
  34. print("淘宝网窗口是否存在:{}".format(exist))
  35. rpa.app.ie.close_all()

调试预览

打开上方调试预览,点击开始按钮运行程序,运行效果如下列连接视频所示。

win32窗口操作

案例介绍二


本小节内容提供了一个win32场景汇总的测试应用,该应用内前面教学案例中已有的SDK在此不做演示,希望同学们课下寻找对应场景练习熟悉win32的SDK,,测试工具请点击连接下载:winform

案例实现二

新建应用

点击【新建编码模式工程】,选择【机器人类型】,再点击【确认新建】
4 25
**

代码编写

  1. from rpa.core import *
  2. from rpa.core import *
  3. from rpa.utils import *
  4. import rpa4 as rpa
  5. import os
  6. def start():
  7. win32_get_select_items_comboBox()
  8. win32_set_get_datetimepicker_time()
  9. win32_wincheck_chkbox_wfm()
  10. win32_screeenshot()
  11. win32_mouse_move()
  12. def win32_get_select_items_comboBox():
  13. '''
  14. 获取下拉框的值
  15. '''
  16. try:
  17. wnd = rpa.ui.win32.catch('WinForm')
  18. items = wnd.get_selected_items('comboBox',mode='all', index = 1)
  19. if items == ['1234','12345']:
  20. print('comboBox的item获取成功,获取到的数组为:'+str(items))
  21. else:
  22. print('comboBox的item获取失败')
  23. except Exception as e:
  24. print('Exception:e ->' + str(e))
  25. def win32_set_get_datetimepicker_time():
  26. '''
  27. WIn32模块中设置/获取日期控件的时间
  28. '''
  29. try:
  30. rpa.ui.win32.elem_set_datetimepicker("time",year=2020,month=11,day=11,hour=11,minute=30,second=30)#1.给日期控件进行日期赋值
  31. sleep(3)
  32. time = rpa.win32.get_datetimepicker(element="Time")#2.设置时间之后获取该控件日期
  33. result=(time == [2019,8,8,8,30,30])
  34. print('校验日期控件的赋值和取值:'+'设置了[2019,8,5,8,30,30]'+'取到的值为:'+str(result))
  35. except Exception as e:
  36. print('Exception:e ->' + str(e))
  37. def win32_wincheck_chkbox_wfm():
  38. """
  39. 在winform中,checkbox 勾选、取消勾选校验
  40. """
  41. try:
  42. wnd = rpa.ui.win32.catch('WinForm')
  43. # 勾选
  44. rpa.ui.win32.elem_set_checked_state("cb_Name",value=True)
  45. sleep(2)
  46. value = rpa.ui.win32.elem_set_checked_state("cb_Name")
  47. print('cb_name 勾选操作是否成功:'+str(value))
  48. # 取消勾选
  49. rpa.ui.win32.elem_set_checked_state("cb_Name",value=False)
  50. sleep(2)
  51. value = rpa.ui.win32.elem_get_checked_state("cb_Name")
  52. print('cb_name 取消勾选操作是否成功:'+str(value))
  53. # set_check勾选
  54. wnd.set_checked_state(element='cb_Sex',value=True)
  55. sleep(2)
  56. value = rpa.ui.win32.elem_get_checked_state("cb_Sex")
  57. print('cb_sex 勾选操作是否成功:'+str(value))
  58. #获取元素勾选,勾选为True,未勾选为False
  59. state = wnd.get_checked_state('cb_Sex')
  60. print(state)
  61. # 取消勾选
  62. wnd.set_checked_state(element='cb_Sex',value=False)
  63. sleep(2)
  64. value = rpa.ui.win32.elem_get_checked_state("cb_Sex")
  65. print('cb_sex 取消勾选操作是否成功:'+str(not value))
  66. state = wnd.get_checked_state('cb_Sex')
  67. print('cb_name 勾选:状态为:'+str(state))
  68. except Exception as e:
  69. print('Exception e:'+str(e))
  70. def win32_screeenshot():
  71. '''
  72. win32中控件截图操作
  73. '''
  74. cnd = rpa.ui.win32.catch('WinForm')
  75. cnd.screenshot('日历',file=r'\\Mac\Home\Desktop\日历控件截图.jpg')
  76. def win32_mouse_move():
  77. cnd = rpa.ui.win32.catch('WinForm')
  78. cnd.mouse_move(element='comboBox')
  79. text = cnd.text('mouse_move')
  80. if text == '移入comboBox':
  81. print("win32鼠标移入操作结果:True")
  82. cnd.close()

控件录制

第一步:打开winform应用
6
第二步:录制控件
录制元素的操作如视频所示:winform控件录制
9

调试运行

点击studio工具栏内调试运行选项,程序运行效果如视频所示:winform