首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Selenium VBA -如何在无头模式下下载文件

使用Selenium VBA -如何在无头模式下下载文件
EN

Stack Overflow用户
提问于 2022-03-03 21:24:10
回答 1查看 1.2K关注 0票数 0

我在java脚本和python中找到了关于如何使用chrome驱动程序在无头模式下下载文件的代码片段。但是,我不确定如何复制使用VBA运行的代码行(特别是使用excel )。

以下是我发现的不起作用的设置

代码语言:javascript
运行
复制
driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "download.directory_upgrade", True
driver.SetPreference "download.default_directory", FLDR_NAME
driver.SetPreference "safebrowsing.enabled", False
driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "download.setdownloadbehaviour", "allow"
driver.SetPreference "safebrowsing.disable_download_protection", True
This was an attempt at copying the javascript version of downloading in headless mode below

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("prefs", {
  "download.default_directory": "/path/to/download/dir",
  "download.prompt_for_download": False,
})

chrome_options.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "/path/to/download/dir"}}
command_result = driver.execute("send_command", params)

这就是我的基本代码的样子:

代码语言:javascript
运行
复制
  Dim bot As New ChromeDriver, post As Object
  With bot
    .Timeouts.ImplicitWait = 1000
    .AddArgument "--headless"
    .Start
    .get "http://"

当我的自动化在无头模式下运行时,就会到达下载的地步。它成功地单击了下载链接,但是下载没有开始。没有错误,屏幕截图显示没有发生任何其他事情。当我在没有无头模式的情况下运行完全相同的代码时,它工作得非常完美。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-03 21:58:11

代码语言:javascript
运行
复制
  Dim bot As New ChromeDriver, post As Object
  With bot
    .SetPreference "download.default_directory", ThisWorkbook.Path & "\"
    .Timeouts.ImplicitWait = 1000
    .AddArgument "--headless"
    .Start
    .get "http://"
  end with
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71343970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档