pyinstaller 打包 playwright -- 如何将浏览器打包到程序中
start
最近玩了玩 playwright,记录一下遇到的问题。
1. 如何在 python 中使用
安装
pip install playwright
安装浏览器驱动
playwright install
查看浏览器驱动安装的位置
playwright install --dry-run
2. 如何将浏览器打包的程序中
先找到我们使用 pip 安装 playwright 的地址。
然后通过 playwright install --dry-run 找到我们浏览器驱动安装的位置。
拷贝浏览器驱动到,我们 playwright 地址下的 playwright\driver\package\.local-browsers
使用下方命令打包:
pyinstaller --onefile index.py --add-data "D:\work\py\lazy_tomato\venv\Lib\site-packages\playwright;playwright/"# pyinstaller 打包成一个文件 index.py/入口文件 添加需要打包的数据,即存放了我们浏览器驱动的playwright包路径
再补充一下。核心的操作逻辑就是,本来安装的浏览器驱动是放在全局的临时目录里面的。但是我们不加处理直接打包,打包后的程序是没办法找到浏览器驱动。
我们手动拷贝浏览器驱动到我们的 playwright 包文件夹中,打包的时候也将它打包进去,即可解决我们的问题。
--add-data参数是PyInstaller中用于指定需要包含在最终可执行文件中的额外文件或目录的选项。
3. 有时候无法选择到元素
使用 locator 或者 query_selector_all 总是找不到元素。但是直接在浏览器用 js 是可以找到元素的。
后来调试半天找到问题的原因: 嵌套的iframe需要嵌套访问。
相关文章:
pyinstaller 打包 playwright -- 如何将浏览器打包到程序中
start 最近玩了玩 playwright,记录一下遇到的问题。 1. 如何在 python 中使用 安装 pip install playwright安装浏览器驱动 playwright install查看浏览器驱动安装的位置 playwright install --dry-run2. 如何将浏览器打包的程序中 先找到我们使用 pip 安装…...
vue系列=状态管理=Pinia使用
1、Pinia基本概念 1、Pinia向外暴露了几个重要的函数,分别是createPinia、defineStore和storeToRefs 2、pinia有五个核心管理概念: store、store、getters、action、plugins 2、Pinia基本使用 1、安装过程 1、安装pinia插件:npm install pini…...
[HarmonyOS]简单说一下鸿蒙架构
鸿蒙操作系统(HarmonyOS)是由华为公司开发的一款面向全场景的操作分布式系统。它旨在提供一个统一的操作系统平台,支持多种设备,包括智能手机、平板电脑、智能电视、可穿戴设备、智能家居等。鸿蒙架构的设计目标是实现设备之间的无…...
【Python TensorFlow】进阶指南(续篇一)
在前两篇文章中,我们介绍了TensorFlow的基础知识及其在实际应用中的初步使用,并探讨了更高级的功能和技术细节。本篇将继续深入探讨TensorFlow的高级应用,包括但不限于模型压缩、模型融合、迁移学习、强化学习等领域,帮助读者进一…...
机器视觉和计算机视觉的区别
机器视觉和计算机视觉的区别 1、本质上两者是一样的,都是将光信号转换成电信号,然后交给计算机处理; 2、二者侧重点不同,计算机视觉更偏向研究,更前沿,采集到图像后交给计算机进行分析处理,包括…...
RDD 算子全面解析:从基础到进阶与面试要点
Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…...
Vue.js动态组件使用
在 Vue.js 中,动态组件是一种功能强大的特性,它允许你在同一个挂载点根据条件动态地切换不同的组件。这通常通过 Vue 的 <component> 元素和 is 特性来实现。以下是如何在 Vue 3 中使用动态组件的详细指南: 基本用法 定义组件…...
智能合约在供应链金融中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 智能合约在供应链金融中的应用 智能合约在供应链金融中的应用 智能合约在供应链金融中的应用 引言 智能合约概述 定义与原理 发展…...
【大数据技术基础 | 实验十】Hive实验:部署Hive
文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤(一)安装部署(二)配置HDFS(三)启动Hive 六、实验结果(一)启动结果(二)Hive基…...
Golang常见编码
1. URL 编码、解码 2. base64 编码、解码 3. hex 编码、解码 4. md5 编码 5. sha-1 编码 6. sha-256 编码 7. sha-512 编码 package mainimport ("crypto/md5""crypto/sha256""crypto/sha512""encoding/base64""encoding/h…...
搭建Spring gateway网关微服务
在使用微服务架构时,往往我们需要搭建一个网关服务,作为各个微服务的统一入口。Spring gateway作为网关服务的后起之秀,受到各大企业的欢迎。下面介绍下网关服务Spring gateway的搭建。 引入依赖,这一步比较重要,也需要…...
性能测试|JMeter接口与性能测试项目
前言 在软件开发和运维过程中,接口性能测试是一项至关重要的工作。JMeter作为一款开源的Java应用,被广泛用于进行各种性能测试,包括接口性能测试。本文将详细介绍如何使用JMeter进行接口性能测试的过程和步骤。 JMeter是Apache组织开发的基…...
spring boot 难点解析及使用spring boot时的注意事项
1、难点解析: 1.1 配置管理: --- 尽管Spring Boot强调“习惯优于配置”,但在实际项目中,仍然需要面对大量的配置问题。如何合理地组织和管理这些配置,以确保项目的稳定性和可维护性,是一个挑战。 --- Sp…...
通过投毒Bingbot索引挖掘必应中的存储型XSS
简介 在本文中,我将讨论如何通过从外部网站对Bingbot进行投毒,来在Bing.com上实现持久性XSS攻击。 什么是存储型或持久性XSS?存储型攻击指的是将恶意脚本永久存储在目标服务器上,例如数据库、论坛、访问日志、评论栏等。受害者在…...
STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55
STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55 前面我们讲述了几种BootLoader中的命令,包括获取软件版本号、获取帮助、获取芯片ID、读取Flash保护Level。 下面我们来介绍一下BootLoader中最重要的功能之一—跳转!就像BootLoader词汇中的Boot…...
【Linux篇】面试——用户和组、文件类型、权限、进程
目录 一、权限管理 1. 用户和组 (1)相关概念 (2)用户命令 ① useradd(添加新的用户账号) ② userdel(删除帐号) ③ usermod(修改帐号) ④ passwd&…...
PET-文件包含
include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…...
实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新
pages.json 中的配置 { "path": "pages/message", "style": { "navigationBarTitleText": "消息", "enablePullDownRefresh": true, "onReachBottomDistance": 50 } }, <template><view class…...
PostgreSQL 修改字段类型但是存在视图依赖
其实视图的存在与否在数据库界一直是一个话题。用好视图可以简化程序的很多代码,用不好视图不仅会给维护带来很多的不便,也会造成很大的性能问题。下面我从维护方面给出案例,以及当存在这种问题的时候,如何去解决这个问题。 假设…...
基于.NET 9实现实时进度条功能:前后端完整示例教程
要在基于.NET 9的应用中实现进度条功能,我们可以通过HttpContext.Response来发送实时的进度更新到前端。以下是一个简单的示例,展示了如何在ASP.NET Core应用中实现这一功能。 但是,我在.net framework4.7.2框架下,实际不了HttpC…...
量子计算模拟Hubbard模型:算法实现与噪声分析
1. Hubbard模型与量子计算模拟概述在凝聚态物理研究中,Hubbard模型堪称是研究强关联电子系统的"果蝇模型"。这个看似简单的理论框架却能展现出从金属-绝缘体相变到高温超导等丰富物理现象。模型的核心哈密顿量包含两项关键竞争:H -t∑⟨i,j⟩…...
Postman并发测试入门:从手动点击到真并行压测
1. 为什么“并发测试”不是点几下Postman就能搞定的事?很多人第一次听说“用Postman做并发测试”,第一反应是:不就是把接口地址填进去,点一下Send,再点几次Send,就算并发了?我刚入行那会儿也这么…...
基于SpringBoot的工业设备远程运维台账毕业设计
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Spring Boot框架的工业设备远程运维台账系统以解决传统工业设备运维管理中存在的信息孤岛现象与数据处理效率低下问题。当前工业设备运维…...
从哈密顿量到李代数:对称性识别与结构常数计算实践
1. 从哈密顿量到李代数:物理学家工具箱里的对称性语言在理论物理和数学物理的日常工作中,我们常常面对一个核心问题:如何从一堆看似复杂的运动方程或一个写出来的哈密顿量中,快速识别出系统隐藏的“灵魂”?这个灵魂&am…...
子黎曼几何与庞特里亚金原理:约束系统时间最优控制
1. 从黎曼到子黎曼:当几何遇见约束 在物理和工程的世界里,我们常常需要为系统寻找一条“最优”的路径。无论是让量子比特以最快的速度演化到目标态,还是规划机器人在复杂地形中的最短时间轨迹,其背后都隐藏着一个深刻的几何问题&a…...
超新星遗迹光学辐射特征的主控因素:环境密度与磁场影响的统计诊断
1. 项目概述:当超新星遗迹的“指纹”遇上统计学的“放大镜”在宇宙这个宏大的实验室里,超新星遗迹(Supernova Remnant, SNR)扮演着能量“搅拌器”和物质“回收站”的双重角色。一颗大质量恒星走到生命尽头,…...
行列式点过程:从统计独立到负依赖的机器学习范式跃迁
1. 项目概述:从统计独立到负依赖的范式跃迁在机器学习和统计学的工具箱里,统计独立性长期以来扮演着基石的角色。从朴素贝叶斯分类器的特征条件独立假设,到蒙特卡洛方法中独立同分布的采样点,再到随机梯度下降中独立的小批量数据&…...
集合卡尔曼滤波结合机器学习代理模型的长期精度理论分析与实践
1. 项目概述:当集合卡尔曼滤波遇上机器学习代理模型在气象预报、海洋环流模拟乃至地质勘探这些领域,我们常常面临一个核心挑战:如何从充满噪声的、不完整的观测数据中,准确地推断出复杂动力系统的真实状态?这就像是在一…...
[智能体-27]:Ollama 通过命令行与模型交互的几种方式
Ollama 命令行交互四种常用方式1. 交互式对话(最常用)直接进入会话,持续聊天bash运行ollama run qwen2:7b输入问答,/bye 退出,/clear 清屏2. 单次命令提问(一行执行)无需进入会话,直…...
8051单片机PDATA与XDATA存储访问优化解析
1. PDATA与XDATA变量生成的指令解析在8051单片机开发中,外部数据存储器的访问方式直接影响程序效率和硬件设计。作为从业十余年的嵌入式工程师,我经常需要针对不同存储区域优化代码。PDATA和XDATA作为两种常见的外部数据存储模式,其指令生成机…...
