Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium&;设置Chrome下载目录;VBA_Vba_Selenium - Fatal编程技术网

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

如何使用Selenium&;设置Chrome下载目录;VBA,vba,selenium,Vba,Selenium,使用Win7、Office2010、Chrome 58和Selenium 2.0.9,我可以自动从一些网站下载大量文件(注意,我实际上需要这些文件,而这些网站不是我的——我不是在测试我自己的网站),我想控制文件下载的最终位置 我查看了相当多的搜索结果,我发现的一切都让我找到了以下版本的代码,每个驱动程序。SetPreference变体都经过了独立测试,没有一个有效 Private Sub DownloadDirTest() Dim Driver As Selenium.ChromeDriv

使用Win7、Office2010、Chrome 58和Selenium 2.0.9,我可以自动从一些网站下载大量文件(注意,我实际上需要这些文件,而这些网站不是我的——我不是在测试我自己的网站),我想控制文件下载的最终位置

我查看了相当多的搜索结果,我发现的一切都让我找到了以下版本的代码,每个
驱动程序。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这就是为什么你应该问自己一个全新的问题(如果你愿意,请参考这个问题),而不是在评论中问一个新问题。