应用场景
小伙伴们是不是遇到以下困扰呢?
网页长得像一对孪生兄弟,不仅仅是网页名称,还有链接都是一样的。
网页的url前面是完全一样的,只有后面数值有差异,去掉数值又会捕获到其他网页。
不知道已经打开的网页是什么?跳转的网页是不是预期的。
需要知道打开的所有网页,每一个打开网页的url,title。
当前激活的页面是不是预期的。
网页的title和url都是变化的,无法使用固定参数捕获页面。
SDK介绍
基于以上的困扰,阿里云RPA的工程师们在3.4.5版本中新增了7个SDK,其中chrome有四个,IE有三个。
Chorme
catch_specified_pages(name, *, mode='title', pattern='contain')
catch_all_pages()
catch_activated_pages()
close_all
IE
catch_specified_pages(name, *, mode='title', pattern='contain')
catch_all_pages()
close_all
操作前提
存在已经打开了百度网页、淘宝、没有名称的标签页。如下图:
使用方法
Chrome
catch_specified_pages
捕获满足条件的所有页面
name
:标题或者url# 网页的名称或者连接
mode
: 'title'|'url'# 指前一个参数name的类型是title或者url
pattern
: 'equal'|'contain'|'regular'# 匹配方式,完全相等/包含/正则
page_list = rpa.app.chrome.catch_specified_pages("百度一下", mode="title",pattern="equal")
# page_list为Browser对象的列表
if page_list:
for i in page_list:
print(i.title())
# 标题-包含匹配
page_list = rpa.app.chrome.catch_specified_pages("百度一下", mode="title",pattern="contain")
# 标题-正则匹配
page_list = rpa.app.chrome.catch_specified_pages(".*", mode="title",pattern="regular")
# url-完全匹配
page_list = rpa.app.chrome.catch_specified_pages("baidu", mode="url",pattern="equal")
# url-包含匹配
page_list = rpa.app.chrome.catch_specified_pages("baidu", mode="url",pattern="contain")
# url-正则匹配
page_list = rpa.app.chrome.catch_specified_pages(".*m/$", mode="url",pattern="regular")
catch_all_pages
返回满足条件的所有页面,返回Browser对象的列表。这里无论是机器人创建的还是人工创建的,统统都捕获到了哦~
page_list = rpa.app.chrome.catch_all_pages()
if page_list:
for i in page_list:
print(i.title())
catch_activated_pages
返回所有激活的页面显示激活的页面是指如上图,显示在当前页面上的页面,所以百度网页为激活页面啦!!!
page_list = rpa.app.chrome.catch_activated_pages()
if page_list:
for i in page_list:
print(i.title())
close_all
关闭所有的页面顾名思义,可以关闭已打开的所有网页!!!
# 关闭所有的页面
rpa.app.chrome.close_all()
IE
catch_specified_pages
捕获满足条件的所有页面
name
:标题或者url# 网页的名称或者连接
mode
: 'title'|'url'# 指前一个参数name的类型是title或者url
pattern
: 'equal'|'contain'|'regular'# 匹配方式,完全相等/包含/正则
page_list = rpa.app.ie.catch_specified_pages("百度一下,你就知道", mode="title",pattern="equal")
if page_list:
for i in page_list:
print("ie-标题-完全匹配", i.title())
# 标题-包含匹配
page_list = rpa.app.ie.catch_specified_pages("百度一下", mode="title",pattern="contain")
# 标题-正则匹配
page_list = rpa.app.ie.catch_specified_pages(".*", mode="title",pattern="regular")
# url-完全匹配
page_list = rpa.app.ie.catch_specified_pages("baidu", mode="url",pattern="equal")
# url-包含匹配
page_list = rpa.app.ie.catch_specified_pages("baidu", mode="url",pattern="contain")
# url-正则匹配
page_list = rpa.app.ie.catch_specified_pages(".*m/$", mode="url",pattern="regular")
catch_activated_pages
返回所有激活的页面显示激活的页面是指如上图,显示在当前页面上的页面,所以百度网页为激活页面啦!!!
page_list = rpa.app.ie.catch_all_pages()
if page_list:
for i in page_list:
print(i.title())
举个例子!!创建两个相同百度网页,在第一个网页的百度输入框中输入0,第二个网页的百度输入框中输入1.
page_list = rpa.app.chrome.catch_all_pages()
if page_list:
for i in range(len(page_list)):
print(i)
page = page_list[i]
page.input_text("百度输入框",str(i)) # 这里别忘记录制百度输入框控件哦~
close_all
关闭所有的页面同chrome操作一样,一样用来关闭已打开的所有网页!!!
# 关闭所有的页面
rpa.app.ie.close_all()
好啦,以上就是7个SDK的使用方法啦,小伙伴们在开发过程中遇到类似困难可要记得使用哦~~