关于Python+selenium+chrome编译为exe更换电脑无法打开问题

前言

准备好对应版本的浏览器与驱动

这里我放置了对应的 浏览器与驱动,欢迎下载。

链接: https://pan.baidu.com/s/1SpWby5v6OPCxD4BfuNz6bw?pwd=5bse 提取码: 5bse

一、代码问题

需要将chrome浏览器与驱动放置到 代码文件区域,如下:

Browser文件内部:

python 复制代码
        chrome_options = Options()
        chrome_options.add_argument("--window-size=1920,960")  # 设置浏览器窗口大小
        chrome_options.add_argument("--disable-infobars")  # 隐藏"Chrome 正在受自动化软件控制"提示
                # 1. 浏览器参数初始化
        chrome_driver =  r"Browser/chromedriver.exe" # 浏览器驱动,注意,这里一定是相对于你当前代码的路径
        chrome_app = r"Browser/chrome.exe"  # 浏览器
        chrome_driver = ExeUtils.get_resources(chrome_driver)
        chrome_app = ExeUtils.get_resources(chrome_app)
        chrome_options.binary_location = chrome_app  # 添加浏览器

        
        if getattr(sys, 'frozen', False):
            print("已从exe包中加载chromedriver")
            # 从exe包里找chromedriver依赖驱动的情况
            chromedriver_path = os.path.join(sys._MEIPASS, "Browser/chromedriver.exe")
            service = Service(chromedriver_path)
            self.driver = webdriver.Chrome(service=service, options=chrome_options)
        else:
        # 普通情况下从本地文件路径找依赖的情况
            print("已从本地文件路径加载chromedriver")
            service = Service(chrome_driver)
            self.driver = webdriver.Chrome(service=service, options=chrome_options)

## 这段直接抄的别人的
class ExeUtils:
    """exe生成相关工具类"""
    @staticmethod
    def get_resources(path):
        """
        获取实际的资源访问路径(本地||临时)
        根据打包生成的临时目录访问资源
        或者直接运行脚本获取本地访问资源
        :param path:
        :return:
        """
        if getattr(sys, 'frozen', False):
            base_path = sys._MEIPASS
        else:
            base_path = os.path.abspath(".")
        return os.path.join(base_path, path)

打包问题

需要将所有的浏览器文件与驱动打包。

注意这里:绝对路径\Browser是刚刚圈起来的文件夹,要把文件夹全部打包进来。

python 复制代码
pyinstaller --onefile --windowed --icon=Helper.ico --hidden-import=selenium --add-data="绝对路径\Browser;Browser" Browser.py

结语

如果有问题需要欢迎咨询,有讲解的不清楚的可以评论或者私信告诉我。

相关推荐
这里有鱼汤1 小时前
【花姐小课堂】新手也能秒懂!用「风险平价」打造扛造的投资组合
后端·python
databook15 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar16 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805116 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_16 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django