Heroku部署Selenium+Python时截图存储位置及获取方法咨询
Heroku上Selenium截图的存储位置与获取方法
存储位置
当你在Heroku上运行driver.save_screenshot("screenshot.png")时,截图会被保存到应用运行的dyno临时文件系统的工作目录(也就是代码执行时的当前目录)。
但要注意:Heroku的dyno文件系统是临时且短暂的——当dyno重启、休眠或者应用重新部署后,所有临时文件都会被清除,无法持久保留。
获取方法
1. 持久化存储(推荐)
由于Heroku临时文件系统无法长期保存文件,最可靠的方式是截图完成后立刻将文件上传到第三方云存储服务(如AWS S3、Google Cloud Storage等),确保截图能永久留存。
示例代码(上传到AWS S3):
import boto3 from botocore.exceptions import ClientError # 生成截图 driver.save_screenshot("screenshot.png") # 初始化S3客户端 s3_client = boto3.client( "s3", aws_access_key_id="你的AWS Access Key", aws_secret_access_key="你的AWS Secret Key" ) # 上传截图到S3存储桶 try: s3_client.upload_file( "screenshot.png", "你的S3存储桶名称", "保存到桶里的文件名.png" ) except ClientError as e: print(f"上传失败: {e}")
2. 临时调试获取
如果只是调试需要查看截图,可以通过Heroku CLI操作:
- 进入应用的dyno shell:执行
heroku run bash --app 你的应用名称 - 在shell中用
ls命令确认screenshot.png是否存在 - 将文件从dyno复制到本地:执行
heroku ps:copy screenshot.png --app 你的应用名称,文件会被下载到本地当前目录
内容的提问来源于stack exchange,提问作者Rodrigo Carvalho
相关产品推荐
相关产品推荐

