使用RobotFramework无法安装Edge驱动 能否按参数版本自动安装?
解决方案:Robot Framework运行时自动下载匹配版本Edge驱动
适配版本说明
你当前使用的Selenium 3.14、Robot Framework Selenium Library 4.5.0、Python 3.7技术栈,可通过webdriver-manager指定兼容版本实现驱动自动下载,支持传入版本参数固定驱动版本。
第一步:安装兼容依赖
必须安装适配旧技术栈的webdriver-manager版本,高版本不再支持Python 3.7和Selenium 3:
pip install webdriver-manager==3.8.6
第二步:编写自定义RF关键字
新建CustomEdgeKeywords.py文件,实现支持传入版本参数的驱动自动下载逻辑:
from webdriver_manager.microsoft import EdgeChromiumDriverManager from robot.api.deco import keyword from selenium import webdriver from SeleniumLibrary import SeleniumLibrary @keyword("Open Browser With Auto Edge Driver") def open_browser_with_auto_edge_driver(test_url, edge_version=None): # 传入版本参数则下载指定版本驱动,否则自动匹配本地Edge浏览器版本 if edge_version: driver_path = EdgeChromiumDriverManager(version=edge_version).install() else: driver_path = EdgeChromiumDriverManager().install() # 适配Selenium 3的驱动启动写法 edge_driver = webdriver.Edge(executable_path=driver_path) edge_driver.get(test_url) # 将驱动实例注册到SeleniumLibrary,兼容原生关键字调用 sl_instance = SeleniumLibrary().get_instance() sl_instance._drivers.register(edge_driver, alias=None) return edge_driver
第三步:Robot Framework脚本调用示例
*** Settings *** Library SeleniumLibrary Library CustomEdgeKeywords.py *** Test Cases *** 指定版本Edge驱动启动测试 Open Browser With Auto Edge Driver https://www.baidu.com edge_version=116.0.1938.69 Title Should Be 百度一下,你就知道 Close Browser 自动匹配本地Edge版本驱动启动测试 Open Browser With Auto Edge Driver https://www.baidu.com Title Should Be 百度一下,你就知道 Close Browser
注意事项
- 驱动默认会缓存到本地,重复调用相同版本不会重复下载
- Selenium 3.14仅支持79版本以上的Chromium内核Edge驱动,旧版EdgeHTML内核浏览器无法适配
- 离线环境可提前将对应版本驱动放到webdriver-manager默认缓存目录,运行时直接读取不会触发网络请求
内容的提问来源于stack exchange,提问作者Neethy Nair
相关产品推荐
相关产品推荐

