Jenkins部署Python报错 - selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executabl

  • 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,目前任某金融品类App负责人。
  • 荣誉:2022年度博客之星Top4博客专家认证、全栈领域优质创作者、新星计划导师“星荐官共赢计划” 发起人
  • 现象级专栏《白宝书系列》作者文章知识点浅显易懂且不失深度TFS-CLUB社区创立者旨在以“赋能 共赢”推动共建技术人成长共同体

专栏系列(点击解锁)学习路线(点击解锁)
Python全栈白宝书 零基础入门篇
语法进阶篇
自动化办公篇
自动化测试实战篇
数据库开发实战篇
爬虫入门与实战
数据分析篇
前端入门+flask 全栈篇
django+vue全栈篇
拓展-人工智能入门


🐳 背景

最近整理博客,在Mac上搭建了一个 Jenkins 的自动化测试的集成环境。

在构建任务的时候 出现了 报错 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home

其实关于这个报错,一般情况下都会去检查, chromedriver 与浏览器的版本是否有冲突。但是我可以百分百肯定,我的环境绝对不是版本冲突造成的,因为在我下载了 chromedriver 的时候,已经吧 chrome 浏览器的自动更新给 kill 掉了。有兴趣了解版本冲突问题的解决方法的,请访问 关于 selenium.common.exceptions.SessionNotCreatedException: Message: session not created 解决办法

🐳 错误分析

既然不是版本冲突造成的,那就好好研究一下报错吧。见下图:



OK,既然如此,就来看看这行代码。

self.driver = webdriver.Chrome()

这行代码的功能实现,是为了调用 chrome 的 webdriver 驱动,从而启动浏览器;之所以这么写的原因是因为,我的 chromedriver 文件时直接放在了 python 的路径下的,这样就不需要再重新指定 chromedriver 的环境变量了,这也是当初图省事儿这么干的。

这里我也尝试着利用网上前人的解决方案尝试解决掉,但是最后都是以失败而告终。(还差点把我环境给我搞坏了…)

🐳 解决方案

最后我使用了一个笨法子,我在代码直接手动指定了 chromedriver 的路径,然后将其赋值给 self.driver ,再次运行构建任务,就解决了这个报错问题。

代码如下:

    def setUp(self):                    # 每个测试类在加载之前执行一次 setUpClass ,初始化方法
        firefox_driver = "/Users/workspace/driver/geckodriver"
        self.driver = webdriver.Firefox(executable_path=firefox_driver)
        # self.driver = webdriver.Chrome()
        self.driver.maximize_window()


构建任务结果如下:



OKK,搞定!太难受了啊!



评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哥撩编程

多点...少点...多少给点?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值