- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Python 中的 Selenium 脚本(在 Windows 上使用 ChromeDriver),它从页面获取各种附件(不同文件类型)的下载链接,然后打开这些链接来下载附件。这对于 ChromeDriver 默认下载的文件类型无法预览,效果很好。但图像(JPEG、PNG)和 PDF 会默认预览,因此不会自动下载。
我当前使用的 ChromeDriver 选项(适用于不可预览的文件):
chrome_options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : 'custom_download_dir'}
chrome_options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome("./chromedriver.exe", chrome_options=chrome_options)
这会将文件下载到“custom_download_dir”,没有问题。但可预览的文件只是在 ChromeDriver 实例中预览,而不是下载。
是否有任何 ChromeDriver 设置可以禁用此预览行为并直接下载所有文件(无论扩展名如何)?
如果没有,可以使用 Firefox 来完成吗?
最佳答案
我不会依赖特定的浏览器/驱动程序选项,而是使用图像 URL 来执行下载来实现更通用的解决方案。
您可以使用类似的代码获取图像 URL:
driver.find_element_by_id("your-image-id").get_attribute("src")
然后我会使用例如 urllib 下载图像。
这是 Python2 的一些伪代码:
import urllib
url = driver.find_element_by_id("your-image-id").get_attribute("src")
urllib.urlretrieve(url, "local-filename.jpg")
Python3 也是如此:
import urllib.request
url = driver.find_element_by_id("your-image-id").get_attribute("src")
urllib.request.urlretrieve(url, "local-filename.jpg")
在评论后进行编辑,这是有关如何在知道文件 URL 后下载文件的另一个示例:
import requests
from PIL import Image
from io import StringIO
image_name = 'image.jpg'
url = 'http://example.com/image.jpg'
r = requests.get(url)
i = Image.open(StringIO(r.content))
i.save(image_name)
关于Python Selenium 使用 ChromeDriver 下载图像(jpeg、png)或 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49627458/
昨天我更新了我的旧 chromedriver(v2.0.204324.dyu) 并在 https://code.google.com/p/chromedriver/downloads/list 上传了
我在使用 Selenium WebDriver.chromedriver 获取 json 结果数据时遇到问题,服务器将响应 http 状态代码 429 太多请求。 但是当我直接使用 chrome 获取
所以我在 stack here 上看到了一个类似的问题,但它没有被接受的答案,也没有为我提供我需要的信息。 我正在尝试使用“chromedriver”,因为“selenium-webdriver”需要
嗨,在 headless centos 7 中,我正在尝试进行 headless selenium 测试。为此,我安装了 google-chrome、chromedriver 和 selenium p
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我的问题与这篇文章有关:session not created: This version of ChromeDriver only supports Chrome version 74 error
我们试图在 Jenkins 上添加一些 selenium 脚本,但每当我们发出命令时,我都会收到错误消息“Chromedriver.exe 已停止工作”。 我将 chromedriver 移动到另一个
我使用的是 Macbook Pro,并且使用 Selenium 2.46.0 for Java 和 Chromedriver。我只有一个main方法,如下: public static void ma
我正在尝试在 heroku 上设置 selenium。我一直在看Running ChromeDriver with Python selenium on Heroku寻求帮助。基于此,我安装了列出的
当我设置初始设置 Nightwatchjs(使用初学者教程)时,出现如下错误: 尝试启动 ChromeDriver 时出错:无法解析路径:“/node_modules/.bin/chromedrive
我在 Windows 7 上使用 Selenium Chromedriver 时遇到问题。为了显示该问题,我将其简化为一个简单的脚本来简单地启动《纽约时报》网站: from selenium impo
问题 我一直在使用 Selenium 编写 Python 脚本,它在本地运行良好(因为我已将 ChromeDriver 安装在正确的目录中,即 assets/chromedriver),但它无法在赫罗
WebDriver driver = new ChromeDriver(options); 显示构造函数 ChromeDriver(ChromeOptions) 未定义,为什么? 最佳答案 导入以下语
我安装了 nuget 包 - Selenium.WebDriver.ChromeDriver 2.46.0.. 当我发布(通过 dotnet publish .Net CLI 命令).csprojec
我想用 chromedriver 从 fanfiction.net 上抓取一些故事。 我尝试以下方法: from selenium import webdriver import time path
当我尝试运行 npm install chromedriver 我得到... ChromeDriver installation failed Error extracting archive: Er
只是一个简单的 Python 代码: from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_
使用 C# 在 selenium 中哪里可以找到 chromedriver.log。在哪里可以看到chromedriver的日志文件? ChromeOptions optn= new ChromeOp
我在 Linux 上使用 Node 5.10.0。运行脚本时出现一些问题,如下所示 [davea@mydevbox mydir]$ node SkyNet.js Validation Complete
我是一名优秀的程序员,十分优秀!