Uibot融合selenium功能(RPA工具融合selenium)

我们知道RPA是一个平台,给我们提供了很多的能力。但是呢,相对一些专业的工具类来讲,Uibot等RPA工具,还是欠缺一些能力,或者易用性上不如专业工具。那么我们是否可以得到这样的能力,将专业工具融合到Uibot中来呢?ub可以支持扩展,我们可以把python脚本封装到ub中,这样就可以使用这样的能力。

具体思路:可以使用selenium,并且把selenium类库放到ub的对应目录下。我们可以使用selenium来启动我们的浏览器,并且后续使用ub来进行正常操作,当需要用到selenium的操作的时候使用扩展的插件来进行操作,这样就可以把selenium的能力引用到ub中来了

 

将我们编写的python扩展功能脚本放入ub的安装目录的extend的python中

 

如果我们的脚本中有依赖的第三方类库,则我们需要将编写脚本所依赖的第三方类库放入到ub的安装目录的lib下的site_packages目录中

 

这样,我们的代码就可以被ub来使用了

 

Dim hWeb
// 导入我们的py脚本文件名
Import my_se
// 调用我们的脚本中的方法,传入参数
hah = my_se.new_driver("https://www.baidu.com","D:\\chromedriver.exe")
// 调用脚本中的最大化方法
my_se.max_size(hah)
// 将打开的浏览器绑定给ub
hWeb = WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
// 使用ub的命令来进行输入
Keyboard.InputText(@ui"输入控件<input>2","1234",true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})
Delay(3000)

 

在实现此功能过程中,我们在编写脚本的时候需要注意,【关键点】如果我们在使用selenium启动的浏览器的时候不加载我们的ub的插件,则我们在运行ub脚本的时候,就无法使用ub的命令去操控浏览器,所以,我们就需要在new Chrome的时候,需要带上chrome的options,需要去加载我们的插件。

 

def new_driver(url, path="chromedriver.exe",crx_path="C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default/Extensions/nbacobmbjgnmmdangdadkbjiabhamnco/ub.crx"):


if path == "chromedriver.exe" and "chromedriver.exe" not in os.listdir(os.getcwd()):
raise Exception("驱动不存在")
"""根据chromeDriver和传入的地址"""
options = webdriver.ChromeOptions()
options.add_extension(crx_path)
driver = webdriver.Chrome(executable_path=path, options=options)
driver.get(url)
return driver




def max_size(driver: webdriver):
"""最大化窗口"""
driver.maximize_window()

 

如何加载我们的插件呢,我们需要如下做,将我们的插件打包成crx文件,先打开我们浏览器的插件管理

点击打包扩展程序

浏览器选择打包的插件目录

点击打包扩展程序

就可以在打包的插件目录找到该打包的插件文件了,后缀为crx

在我们上面的代码中,设置参数的时候,加入,即可

 

 # crx_path即上面打包完成的crx文件的路径
options.add_extension(crx_path)

 

 

posted @ 2022-08-03 13:59  致命风华  阅读(653)  评论(0编辑  收藏  举报