使用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驱动程序的链接 - 我无法通过半心半意的搜索找到它),我愿意使用那些。
答案 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