selenium4如何指定chrome和firefox的驱动(driver)路径
创始人
2024-11-17 07:34:08
0

python+pytest+selenium框架的自动化测试脚本。

原本用的chrome,很久没用了,今天执行,发现chrome偷偷升级,我的chromedriver版本不对了。。。鉴于访问chrome相关网站太艰难,决定弃用chrome,改用firefox。因为,firefox可以自己决定是否升级浏览器:

改倒是很快,问题是,改完了执行的时候发现,有时候可以,有时候找不到driver。。。。因为我是这么用的:

driver = webdriver.Firefox()

这里未指定geckodriver的路径,默认使用执行目录下的driver。

浏览器驱动放在项目的根目录下,执行时,若从项目根目录下的pytest.main()执行,自然没有问题。但是当我写脚本,单独调试的时候,执行目录变成每一个test case所在的目录,即%项目根目录%/case/子目录/test_XXX.py

所以,它找不到浏览器驱动。。。

我需要指定浏览器驱动的位置,让它每次都去同一个地方找。网上搜了一圈,要么是chromedriver的指定方法,要么是让我用参数execute_path指定路径,但是,运行时发现这个参数非法。。。

自己去查官网API(7. WebDriver API — Selenium Python Bindings 2 documentation),一打开看到这样一个列表

受到启发,于是仿着chrome,指定了firefox驱动的路径,如下:

指定chrome driver的路径

import sys import os from selenium import webdriver from selenium.webdriver.chrome.service import Service  driver_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(sys.executable)))),'chromedriver.exe') service = Service(executable_path=driver_path) options = webdriver.ChromeOptions() driver = webdriver.Chrome(service=service, options=options)

指定firefox driver的路径

import sys import os from selenium import webdriver from selenium.webdriver.firefox.options import Options   driver_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(sys.executable)))),                                'geckodriver.exe') service = Service(executable_path=driver_path) options = webdriver.FirefoxOptions() driver = webdriver.Firefox(service=service, options=options)

相关内容

热门资讯

2分钟细说(大鱼海棠)外挂透明... 2分钟细说(大鱼海棠)外挂透明挂辅助挂(有挂的)明细教程(2024已更新)(哔哩哔哩),亲,有的,a...
推荐十款(浙江游戏大厅)外挂透... 推荐十款(浙江游戏大厅)外挂透明挂辅助插件(辅助挂)巨细无遗(2023已更新)(哔哩哔哩);本章节将...
我来分享(桃花源)外挂透明挂辅... 我来分享(桃花源)外挂透明挂辅助神器(透视)透彻教程(2020已更新)(哔哩哔哩);桃花源是一种具有...
第三方攻略(中至万年麻将)外挂... 第三方攻略(中至万年麻将)外挂透明挂辅助软件(有辅助)缜密教程(2021已更新)(哔哩哔哩);中至万...
为什么需要防火墙这种硬件设备 防火墙是一种硬件设备,用于保护内部网络免受外部网络的攻击和入侵。它可以过滤进出网络的数据包,只允许符...
新苹果手机如何导入旧手机数据(... 使用“快速开始”功能,将新旧iPhone靠近,扫描旧手机上的云状图案,进行面部识别。在“应用与数据”...
[LLM评测/评价指标]用 P... 用 Python 计算文本 BLEU 分数和 ROUGE 值NLP 2020年 08月13日文本生成...
什么是爆破服务器 爆破服务器通常指的是通过大量请求尝试破解服务器的安全措施,如密码猜测、端口扫描等,以获取未授权访问权...
十分钟了解(瑞星游戏)外挂透明... 十分钟了解(瑞星游戏)外挂透明挂辅助脚本(有辅助挂)详实教程(2020已更新)(哔哩哔哩)这是由厦门...
摩托罗拉x3是什么品牌 摩托罗拉x3是摩托罗拉品牌的手机。摩托罗拉x30pro深度测评外观设计摩托罗拉x30pro的设计风格...