很多人用影刀RPA开发网页自动化应用时,仍习惯把"浏览器类型"写死,自己用还好,一般不会有变动。但一旦你有其他更个性化的需求,或者要分享应用给别人用,问题就出来了。
因为每个人的浏览器使用偏好不同,有的习惯用Edge,有的偏爱Chrome,还有的使用360浏览器。这样一来,这类"硬编码写死"的浏览器类型就成了瓶颈。
要让流程更通用,我们就需要考虑让应用支持"自定义选择浏览器"来执行任务。早些时候,影刀RPA还不支持"浏览器类型作为变量进行传递",如果直接用传统的If-Else 语句来判断浏览器类型,那么这部分流程会变得十分冗长。
但从今年3月的V5.25版本开始,影刀正式支持"通过变量动态配置浏览器选项"。这使得用户可以通过"字典键值对映射"的方法来实现。即:让“浏览器名称(显示文本)” 和 “浏览器类型(技术代码)”相互映射。
不同浏览器名称(键)、对应的浏览器类型(值),可以参考如下官方文档:
依赖“字典映射"这个底层原理,下面分享两种我实测好用的方案,都不复杂,你自己看着用。
方案一:流程变量映射
这是直接在流程中创建字典,通过"**变量操作"**查询匹配的一种方法。
指令详参配置如下:
方案二:魔法指令映射
这种方法是将“映射逻辑”封装到魔法指令代码中,你只需要把 dialog_result.浏览器类型作为入参传入,返回值就是浏览器类型的值。
from typing import *
try:
from xbot.app.logging import trace as print
except:
from xbot import print
def get_browser_code(browser_name):
"""
title: 获取浏览器mode值
description: 根据用户选择的浏览器名称 %browser_name%,返回对应的浏览器代码 %browser_code%。
inputs:
- browser_name (str): 浏览器名称,eg: "影刀浏览器"
outputs:
- browser_code (str): 浏览器mode,eg: "cef"
"""
# 检查输入有效性
if not isinstance(browser_name, str):
raise ValueError("浏览器名称必须为字符串类型")
def _get_browser_mapping():
"""
定义浏览器名称与代码的映射关系
"""
return {
'影刀浏览器': 'cef',
'Google Chrome浏览器': 'chrome',
'Microsoft Edge浏览器': 'edge',
'Internet Explorer浏览器': 'ie',
'360安全浏览器': '360se',
'Firefox浏览器': 'firefox',
'QQ浏览器': 'QQBrowser'
}
# 获取浏览器映射字典
browser_mapping = _get_browser_mapping()
# 检查浏览器名称是否存在
if browser_name not in browser_mapping:
available_browsers = ", ".join(browser_mapping.keys())
raise ValueError(f"不支持的浏览器类型: {browser_name}。支持的浏览器有: {available_browsers}")
# 返回对应的浏览器mode
return browser_mapping[browser_name]
-END-
• 爱练字的ISTJ型互联网人/信息整合怪/工具人/影刀高级认证工程师。 • 专注分享:RPA&AI自动化场景提效方案、效率软件安利、实用技能。"所有的生产要素都可以被构建,只有认知是壁垒",欢迎関注 @掌心向暖
推荐阅读:
• 拒绝品牌碰瓷!如何通过影刀RPA为品牌IP搭建一套高效的“内容合规治理”工作流? • 那些拥有上千浏览器书签/收藏夹的电脑用户,是怎么管理书签的? • 不会编程的我开发了一款近900行指令的自动化RPA应用,完美解决98%以上复制受限的飞书文档!! • 飞书文档附件文件下载RPA方案2.0来了!不仅是PDF,Word、PPT、Excel、视频都能批量导出了,还都是源文件