我正在使用 selenium webdriver 使用 firefox 进行一些下载。目前,我的脚本在下载启动后等待特定时间,然后关闭 Firefox。我想知道是否有办法将firefox配置为在下载完成时自动关闭?或者使用 selenium webdriver,我可以检查下载是否已完成?我不想使用任何附加组件,因为它可能会在我的脚本中添加依赖项。我不能使用 wget/curl 等来下载文件。提前致谢
问问题
5857 次
3 回答
2
您可以使用 Selenium WebDriver API 的 WebDriverWait 类使用以下代码进行轮询:
(new WebDriverWait(driver, 180, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return !downloadedFilePart.exists();
}
});
上面的代码检查具有 .part 扩展名的文件,程序每 10 秒下载一次,直到下载完成或 3 分钟后超时。
于 2012-10-30T23:08:54.620 回答
1
我不确定这是否可行,但您是否考虑过通过 Firefox 探索下载位置?轮询它,直到您看到下载已完成。
如果我没记错的话,当文件被下载时,应该有一个扩展名为 .part 的额外文件。
像这样的东西(伪代码):
...
WebDriver poller = new FirefoxDriver()
poller.get("path to download folder");
while ("file with .part extension is present") {
// Wait/sleep some time
// Refresh poller
}
// close downloading firefox instance
firefox.quit();
// close the polling instance
poller.quit();
希望能帮助到你
于 2012-05-23T08:01:59.207 回答