微软Power Automate Desktop 之“UI自动化、浏览器自动化”

之前有介绍过如何用Power Automate Desktop来去做一个获取youtube博主视频更新的自动化流程(微软Power Automate Desktop | 免费RPA工具),觉得这个工具还是蛮有意思的,这两天又试了下它的“UI自动化”和“浏览器自动化”功能,这两个能力一般云端的RPA是没有的,基本得在桌面端才有。它们具体能实现什么场景呢?今天就简单介绍介绍这两个功能。

直接讲功能的话,一是有点抽象,二是细节太多很难一下子说完,所以还是找一个实际需求来介绍下。

大概需求是这样:我想获取某个时间段内关于某个关键词的热门youtube视频,然后让chatgpt帮我总结youtube视频,并用剪映自动生成一个新的视频,最后把内容用telegram bot发送给我。

这个流程里,获取视频和对接telegram bot其实都可以用http模块实现,但是总结youtube视频,并且用剪映剪一个新视频,没有现成的api可以用,那么是否可以尝试用UI和浏览器自动化来实现呢?也就是我让Power Automate自动打开chatgpt,输入prompt,等待获取结果后,再把结果复制下来。我们可以尝试一下。

还是分步骤来说明:

1、输入关键词

第一步我需要先输入我想获取的youtube视频的关键词,这里可以用到“显示输入对话框”的模块

这是模块是什么效果,在我运行时,它会弹出一个弹框,如下图。让我输入关键词,点击ok后,我输入的内容就存在了一个名为UserInput的变量里。接着流程就会继续往后流转。

2、获取youtube内容

也就是我把我录入的关键词给youtube进行搜索,然后我想获取对应的搜索结果。

这里我们可以用“调用web服务”的功能。

因为这个功能在之前的文章里已经写过了,这里就不详细介绍了。简单说说url的含义

  • q=%UserInput% 意思是我把第一步输入的内容作为一个动态变量,给到youtube搜索,q即搜索的关键词
  • type=video 就是我搜索的内容的类型为视频
  • order=viewCount 给我的结果是按观看量排序的,也就是我需要看一些热门视频
  • maxResults =1 返回给我的视频数量是1
  • publishedAfter = 2024-01-01T00:00:00Z 搜索出来的视频是2024-01-01之后发布的
  • key 即你的api秘钥

总结来说就是我想搜一个关键词,然后搜索结果给我返回1个视频,这个视频是2024-01-01之后发布的并且观看次数是最多的。

3、返回给我视频结果

因为后面我想把youtube视频的链接给到chatgpt让他帮我总结,所以我需要得到这个视频的链接。

因为调用web服务后返回给我的是一个json,我需要把我需要的值,也就是videoid变成一个变量

这个步骤之前也介绍过,我简单说下

首先把json转为自定义对象,然后将值分配给一个新的变量。这个值就是视频的链接,即固定的前缀https://www.youtube.com/watch?v=再加上videoid。即%JsonAsCustomObject[‘items’][0][‘id’][‘videoId’]%

那么最后NewVar这个变量,就是我获取到的满足我需求的youtube视频链接了。

接下来就是这一期的重点,如何用UI自动化和浏览器自动化,完成chatgpt的操作。也就是模拟着让流程自己去完成这些操作。我们来试试,这里说明下,可能不一定是最好最完美的方法。

4、自动打开浏览器和网址

要完成给chatgpt发送prompt,我们要先打开浏览器,并且转到chatgpt的网页

这里比较好理解,我直接在url输入想打开的网页地址即可。

注:这里其实我是直接定位到插件的url了,也就是我直接事先把voxscript和capcut插件选好了。打开url,就默认是选中的这两个插件。

当然你也可以试着让power automate自动帮你选插件,不过这个我没试成功(以后再慢慢钻研),所以索性先默认选好了插件。

5、定位到prompt输入框

打开网址后,那么接下来就是要输入prompt了。那对于power automate来说我怎样知道什么时候输入,在哪输入呢?

一般来说我们的操作都是把鼠标移到输入框里,然后点击下鼠标,再输入内容。

我们用power automate模拟下这个操作

(1)等待网页加载完成,也就是网页中出现了输入框

这里重点是UI元素

我们点击添加UI元素

直接用鼠标选中网页中需要的元素即可,比如我选中这个输入框。

那其实也就意味着只要页面出现了这个输入框,我的网页就是加载完成了,可以进行下一步了。

(2)将鼠标放在输入框上

这一步是什么意思?就是我把鼠标,移动到这个搜索框上。(这个搜索框的UI元素命名为Text area ‘prompt-textarea’)

如下图,你在右侧的UI元素栏目里也可以看到你配置的这些元素和位置。

(3)鼠标点击

那我需要单击下鼠标,确认让这个输入框变成是可输入的状态

以上这几个操作,也就是我让powerautomate帮我找到了chatgpt的输入框,并让输入框可以开始输入内容。

6、输入prompt并发送

我们用到“填充窗口中的文本字段”功能,文本框就是我们上一步选择的UI元素输入框,这里我们直接选这个UI元素就行;

要填充的文本也就是你要输入什么内容,这里定义prompt即可,%NewVar%这个变量就是之前我获取到youtube视频链接

输入完之后,我们就要点击发送了,这里我们要让powerautomate能点到发送按钮

所以这里就需要获取发送按钮这个UI元素

同样的方法,我们添加UI元素,然后在页面上直接点击选中即可

7、获取网页信息

这个步骤,我需要等chatgpt回复完成后,我复制回复的内容

我怎么知道chatgpt回复完了呢? 这里其实我好像没想到什么合适的方法。所以只能用比较粗暴的方式,设置一个等待时长60s(我觉得60秒差不多能恢回复完了)

回复完成后,我需要提取到回复的内容

这里我将回复的内容的部分作为一个UI元素进行获取,最后这部分回复的内容保存在一个叫%AttributeValue%变量里

8、把回复的内容用telegram bot发送给我

最后一步,这里就用不到UI元素了,直接用http服务调用bot,把chatgpt回复给我的内容(也就是AttributeValue变量)发送就行

这里的配置就不详细说了。

ok,那么以上就是整个的配置过程,中间步骤我们使用了UI自动化和浏览器自动化,来帮我们模拟和chatgpt交互并且获取最后回复给我们的内容。方法不一定最方便和完美,重在尝试,看上面的图文可能不一定直观,可以看看视频说明。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部