一切都在标题中!
有没有办法定义与python一起使用的selenium-chromedriver的下载目录?
尽管做了很多研究,但我还没有找到确凿的证据...作为一个新手,我看过很多关于Chromedriver的“desired_capabilities”或“选项”的东西,但都没有解决我的问题……(我仍然不知道它是否会!)
为了更多地解释我的问题:我有很多url要扫描(200000),每个url都有一个文件要下载。我必须创建一个表,其中包含url、我在其中删除的信息以及我刚刚为每个网页下载的文件的名称。对于我必须处理的卷,我创建了打开chromedriver的多个实例的线程,以加快处理速度。问题是,每个下载的文件都会到达相同的默认目录,而我无法再将文件链接到url……因此,我们的想法是为每个线程创建一个下载目录,以便逐个管理它们。
如果有人在标题中有我的问题的答案或解决办法来识别下载的文件并将其与当前的url链接,我将不胜感激!
发布于 2013-05-02 23:42:57
对于chromedriver1,创建一个新的配置文件,在该配置文件中将download.default_directory设置为所需的位置,并使用chrome.profile将此配置文件设置为chrome。selenium-chromedriver包应该有一些方法来创建新的概要文件(至少对于ruby是这样的),因为它们需要一些特殊的处理。
Chromedriver2不支持设置配置文件。您可以使用它设置首选项。如果你想设置下载目录,你可以这样做:
prefs: { download: { default_directory: "/tmp" } }ruby selenium-webdriver还不支持这个特性,但是python变体可能会支持。
发布于 2013-06-20 19:16:02
我最近也遇到了同样的问题。我试了很多在互联网上找到的解决方案,都没人帮上忙。所以我最终得出了这个结论:
"download":{ "default_directory":"/tmp/tmpX7EADC.downloads","directory_upgrade":true }
再次启动chrome
现在它工作得很好。
另一个提示:如果你不知道要下载的文件的文件名,创建下载目录的快照(文件列表),然后下载该文件,并通过比较快照和下载目录中的当前文件列表找到它的名称。
发布于 2014-07-18 14:32:21
请尝试下面的代码...
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
String downloadFilepath = "/path/to/download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>();
options.setExperimentalOptions("prefs", chromePrefs);
options.addArguments("--test-type");
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap);
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);https://stackoverflow.com/questions/16328801
复制相似问题