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需要嵌套访问。