rpa.win32
进行操作。在学习此课程前请点击下方链接,熟悉API文档,SDK的具体功能作用在此不再赘述,传送门:客户端SDK窗口操作、应用操作、元素操作
。以IE浏览器为例,创建浏览器窗口,执行窗口相关的一系列操作。
点击【新建编码模式应用】,选择【机器人类型】,再点击【确认新建】。视频-1
本段代码提供了一个简单的浏览器操作代码示例,按照示例进行代码敲写,示例代码的注释(带有“#”的行数为注释行)中详细解释了语句及SDK的作用,带有print语句的操作执行的结果在日志中查看,操作所包含win32的sdk有:win_activate、win_close、catch、win_minimize、win_maximize、win_exists
from rpa.core import *
from rpa.utils import *
import rpa3 as rpa # 使用V3引擎
import win32
def start():
# Window窗口操作
window_operation()
def window_operation():
urls=['www.taobao.com','www.baidu.com','www.aliyun.com']
for url in urls:
rpa.ie.create(url)
sleep(1)
# # 依次激活各个网页
rpa.win32.win_activate('淘宝网')
sleep(1)
rpa.win32.win_activate('百度')
sleep(1)
rpa.win32.win_activate('阿里云')
# 关闭打开的页面
rpa.win32.win_close('阿里云')
sleep(1)
rpa.win32.win_close('百度')
sleep(1)
rpa.win32.catch('淘宝网',mode='start') #捕获根据标题淘宝页面,mode默认为start可不填
#最小化窗口
rpa.win32.win_minimize('淘宝网')
sleep(1)
#最大化窗口
rpa.win32.win_maximize('淘宝网')
sleep(1)
#判断窗口是否存在,日志中输出如果为True则窗口存在
exist = rpa.win32.win_exists('淘宝网')
print(exist)
rpa.ie.closeall()
创建应用以记事本(notepad.exe)为例,以记事本为例,创建记事本应用,执行应用相关的一系列操作
点击【新建编码模式应用】,选择【机器人类型】,再点击【确认新建】。视频3-新建应用
本段代码提供了一个简单的记事本应用操作的示例,按照示例进行代码敲写,示例代码的注释(带有“#”的行数为注释行)中详细解释了语句及SDK的作用,带有print语句的操作执行的结果在日志中查看,操作所包含win32的sdk有:wait、input、element_count、get_element、text、click、pos、expand、collapse、winclose
from rpa.core import *
from rpa.utils import *
import rpa3 as rpa # 使用V3引擎
def start():
# 打开记事本应用
rpa.it.shellExecute(r"C:\windows\system32\notepad.exe")
sleep(1)
# wait 等待加载控件,控件加载成功为True,加载失败为Flase
rpa.win32.wait("编辑区")
print(rpa.win32.wait("编辑区"))
# 输入 Hello world
rpa.win32.input(element="编辑区",value='Hello world')
sleep(2)
#控件元素操作
# 1.获取控件元素
element = rpa.win32.get_element("编辑区")
#element.pos()获取元素坐标
print(element.pos())
# 输入 element.input
element.input(value="欢迎使用RPA",replace=False)
sleep(2)
# element_count为获取元素("编辑区")个数
count = rpa.win32.element_count("编辑区")
print("元素个数为:%s"%count)
# 获取指定控件元素
wnd = rpa.win32.get_element('文件(F)')
# expand 展开节点
wnd.expand()
sleep(2)
# collapse 节点折叠
wnd.collapse()
sleep(2)
# click 点击操作
rpa.win32.click("文件(F)",button="left")
sleep(1)
rpa.win32.click("保存")
sleep(1)
rpa.win32.input("文件名",r"\\Mac\Home\Desktop\win32记事本.txt")
sleep(1)
rpa.win32.click("保存文件")
#获取控件文本
text = rpa.win32.text('编辑后控件')
print("获取控件文本为:%s"%text)
#关闭记事本应用
rpa.win32.win_close('win32记事本')
该应用运行需要录制代码中调用的相关元素:
1.录制编辑区
2.录制菜单栏上方选项”文件(F)”
3.点击选项”文件(F)”,弹出下拉框,录制(快捷键F2)下拉框内”保存”为单独的控件
4.点击选项”文件(F)”,在下拉框内点击保存,弹出文件保存页面
5.在文件保存页面内分别录制文件名(N)和保存**选项,控件录制完成
录制工具的详细教学请参考链接进行学习:https://www.yuque.com/aliyun_rpa/api_document/wq81t7视频4-录制控件**
点击studio工具栏内调试运行选项,程序运行如下方视频所示:视频5-程序运行
from rpa.core import *
from rpa.utils import *
import rpa3 as rpa
import subprocess
import os
def start():
global project_path,exe_path
project_path = rpa.params['project_path']
exe_path=os.path.join(project_path,'resources\win32_test\exe\\')
win32_get_select_items_comboBox()
win32_set_get_datetimepicker_time()
win32_wincheck_chkbox_wfm()
win32_screeenshot()
win32_mouse_move()
def win32_get_select_items_comboBox():
try:
winform_path=os.path.join(exe_path,'winform\WinForm.exe')
rpa.it.run(r''+winform_path)
wnd = rpa.win32.catch('WinForm')
items = wnd.get_select_items('comboBox',mode='all', index = 1)
if items == ['1234','12345']:
print('comboBox的item获取成功,获取到的数组为:'+str(items))
else:
print('comboBox的item获取失败')
except Exception as e:
print('Exception:e ->' + str(e))
finally:
rpa.win32.win_close('WinForm')
def win32_set_get_datetimepicker_time():
try:
winform_path=os.path.join(exe_path,'winform\WinForm.exe')
rpa.it.run(r''+winform_path)
rpa.win32.set_datetimepicker("Time",year=2019,month=8,day=8,hour=8,minute=30,second=30)#1.给日期控件进行日期赋值
sleep(3)
time = rpa.win32.get_datetimepicker(element="Time")#2.设置时间之后获取该控件日期
result=(time == [2019,8,8,8,30,30])
print('校验日期控件的赋值和取值:'+'设置了[2019,8,5,8,30,30]'+'取到的值为:'+str(result))
except Exception as e:
print('Exception:e ->' + str(e))
finally:
rpa.win32.win_close('WinForm')
def win32_wincheck_chkbox_wfm():
"""
在winform中,checkbox 勾选、取消勾选校验
"""
try:
winform_path=os.path.join(exe_path,'winform\WinForm.exe')
subprocess.Popen([winform_path],shell=True)
wnd = rpa.win32.catch('WinForm')
# 勾选
rpa.win32.check("cb_Name",value=True)
sleep(2)
value = rpa.win32.check("cb_Name")
print('cb_name 勾选操作是否成功:'+str(value))
# 取消勾选
rpa.win32.check("cb_Name",value=False)
sleep(2)
value = rpa.win32.check("cb_Name")
print('cb_name 取消勾选操作是否成功:'+str(not value))
# set_check勾选
wnd.set_checked(element='cb_Sex',value=True)
sleep(2)
value = rpa.win32.check("cb_Sex")
print('cb_sex 勾选操作是否成功:'+str(value))
#获取元素勾选,勾选为True,未勾选为False
state = wnd.get_checked('cb_Sex')
print(state)
# 取消勾选
wnd.set_checked(element='cb_Sex',value=False)
sleep(2)
value = rpa.win32.check("cb_Sex")
print('cb_sex 取消勾选操作是否成功:'+str(not value))
state = wnd.get_checked('cb_Sex')
print('cb_name 勾选:状态为:'+str(state))
except Exception as e:
print('Exception e:'+str(e))
finally:
rpa.win32.win_close('WinForm')
# screenshot(self, element, file, *, index=1, parent_element=None, timeout=10)
def win32_screeenshot():
winform_path=os.path.join(exe_path,'winform\WinForm.exe')
subprocess.Popen([winform_path],shell=True)
cnd = rpa.win32.catch('WinForm')
cnd.screenshot('日历',file=r'\\Mac\Home\Desktop\日历控件截图.jpg')
rpa.win32.win_close('WinForm')
def win32_mouse_move():
winform_path=os.path.join(exe_path,'winform\WinForm.exe')
subprocess.Popen([winform_path],shell=True)
cnd = rpa.win32.catch('WinForm')
cnd.mouse_move(element='comboBox')
text = cnd.text('mouse_move')
if text == '移入comboBox':
alert.msgbox(title='提示',msg='mouse_move已成功移入!',disapper_time=2)
rpa.win32.win_close('WinForm')
在文档使用中是否遇到以下问题
更多建议
匿名提交