如何使用Selenium& amp ;;设置Chrome下载目录VBA

时间:2017-05-24 16:39:21

标签: vba selenium

使用Win7,Office2010,Chrome 58和Selenium 2.0.9,我正在自动从几个网站下载大量文件(注意,我实际上需要文件,网站不是我的 - 我是测试我自己的网站),我想控制文件最终被下载的位置。

我查看过相当多的搜索结果,我发现的所有内容都让我看到了以下版本的代码,每个Driver.SetPreference变体都经过独立测试,但都没有。

Private Sub DownloadDirTest()

  Dim Driver As Selenium.ChromeDriver
  Set Driver = New Selenium.ChromeDriver

  Driver.SetPreference "browser.download.dir", "\\server\share\my\long\path"
  Driver.SetPreference "browser.download.dir", "\\\\server\\share\\my\\long\path"
  'after mapping Y: to "\\server\share\my\long\path" in Windows Explorer
  Driver.SetPreference "browser.default_directory", "Y:\"
  Driver.SetPreference "browser.download.dir", "c:\"
  Driver.SetPreference "browser.default_directory", "c:\"

  Driver.Start "Chrome", "http://google.com"

  Driver.Close

End Sub

从这里可以看出:

https://regex101.com/r/7IPvOB/1

我见过的大部分参考资料都是针对Python,Java或Ruby的,他们都引用了类似的东西:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

VBA似乎没有任何等效的ChromeOptions

1)有谁知道正确设置下载目录的实际属性名称?

2)我并不是特别坚持使用Chrome,虽然它似乎比IEDriver(在我的初始测试中)更快,而且我无法获得当前的Firefox驱动程序上班。如果有人指向如何在其他浏览器中可靠地设置DL目录(以及指向更新的Firefox驱动程序的链接 - 我无法通过半心半意的搜索找到它),我愿意使用那些。

1 个答案:

答案 0 :(得分:1)

示例中的首选项特定于Firefox。您需要设置特定于Chrome的更改目录:

Dim driver As New ChromeDriver

driver.SetPreference "download.default_directory", "c:\temp"
driver.SetPreference "download.directory_upgrade", True
driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "safebrowsing.enabled", True
driver.SetPreference "plugins.plugins_disabled", Array("Chrome PDF Viewer")

driver.Get "http://google.com"


driver.Quit