如何使用Selenium&;设置Chrome下载目录;VBA
使用Win7、Office2010、Chrome 58和Selenium 2.0.9,我可以自动从一些网站下载大量文件(注意,我实际上需要这些文件,而这些网站不是我的——我不是在测试我自己的网站),我想控制文件下载的最终位置 我查看了相当多的搜索结果,我发现的一切都让我找到了以下版本的代码,每个如何使用Selenium&;设置Chrome下载目录;VBA,vba,selenium,Vba,Selenium,使用Win7、Office2010、Chrome 58和Selenium 2.0.9,我可以自动从一些网站下载大量文件(注意,我实际上需要这些文件,而这些网站不是我的——我不是在测试我自己的网站),我想控制文件下载的最终位置 我查看了相当多的搜索结果,我发现的一切都让我找到了以下版本的代码,每个驱动程序。SetPreference变体都经过了独立测试,没有一个有效 Private Sub DownloadDirTest() Dim Driver As Selenium.ChromeDriv
驱动程序。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
从这里可以看出:
我看到的大多数参考资料都是针对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驱动程序的链接——我无法通过半心半意的搜索找到),我愿意使用它们。您示例中的首选项特定于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
哇!谈论为树木而怀念森林。。。你是名望之花吗?如果是这样,我很荣幸!此外,该项目的工作仍在继续——最近似乎没有太多活动。该项目仍在进行中。我将很快发布一个新版本,以符合新的Selenium3API,并支持Firefox的新驱动程序!很高兴听到这个消息。在当前会话中,有没有一种方法可以更改下载路径,类似于单击Chrome设置->下载?我看到的答案总是需要构建新选项+新驱动程序+获得一个全新的会话。我不希望关闭当前会话,因为我的文件夹基于下拉列表中的每个项目进行分离,并且不需要重新加载新页面。该下拉列表中有数千项;接受的方法意味着关闭并加载页面数千次。@Kenny这就是为什么你应该问自己一个全新的问题(如果你愿意,请参考这个问题),而不是在评论中问一个新问题。