Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Javascript Selenium,无法自动下载文件,下载确认持续显示_Javascript_Selenium - Fatal编程技术网

Javascript Selenium,无法自动下载文件,下载确认持续显示

Javascript Selenium,无法自动下载文件,下载确认持续显示,javascript,selenium,Javascript,Selenium,我正在研究其他人的代码,该代码应该使用selenium从网页自动下载PDF文件 我不断收到firefox下载确认提示,即使browser.helperApps.neverAsk.saveToDisk属性包含PDF mime类型 我使用的是Selenium 3.12.0,我将firefox版本从70降到了60.0,两个版本都不起作用。我不确定这是代码问题还是selenium firefox兼容问题 我感谢你的帮助 编辑:这是downloand确认弹出窗口的外观 private静态最终字符串mim

我正在研究其他人的代码,该代码应该使用selenium从网页自动下载PDF文件

我不断收到firefox下载确认提示,即使browser.helperApps.neverAsk.saveToDisk属性包含PDF mime类型

我使用的是Selenium 3.12.0,我将firefox版本从70降到了60.0,两个版本都不起作用。我不确定这是代码问题还是selenium firefox兼容问题

我感谢你的帮助

编辑:这是downloand确认弹出窗口的外观

private静态最终字符串mimeTypeToSaveToDisk=“application/pdf;application/zip”;
公共无效下载(字符串url,字符串downloadDirPath){
//FirefoxProfile
FirefoxProfile profile=新的FirefoxProfile();
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateAissuer(false);
profile.setPreference(“browser.download.folderList”,2);
profile.setPreference(“browser.download.dir”,downloadDirPath);
profile.setPreference(“browser.helperApps.neverAsk.saveToDisk”,mimeTypeToSaveToDisk);
profile.setPreference(“browser.helperApps.alwaysAsk.force”,false);
profile.setPreference(“browser.download.manager.showWhenStarting”,false);
profile.setPreference(“browser.download.manager.closeWhenDone”,true);
//FirefoxOptions
FirefoxOptions FirefoxOptions=新的FirefoxOptions();
firefoxOptions.setCapability(FirefoxDriver.PROFILE,PROFILE);
firefoxOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
//firefoxOptions.setBinary(“C:/PathTo/firefox.exe”);
//代理
如果(!StringUtil.isNullOrEmpty(EmailProperties.getProxyHost(null))){
字符串PROXY_URL=EmailProperties.getProxyHost(null)+“:“+EmailProperties.getProxyPort(null);
Proxy Proxy=新代理();
setHttpProxy(PROXY\u URL).setFtpProxy(PROXY\u URL).setSLProxy(PROXY\u URL);
firefoxOptions.setCapability(CapabilityType.PROXY,PROXY);
}
WebDriver驱动程序=新的FirefoxDriver(firefoxOptions);
获取(url);
ExpectedCondition ExpectedCondition=新的ExpectedCondition(){
@凌驾
公共布尔应用(WebDriver驱动程序){
return((JavascriptExecutor)driver.executeScript(“return document.readyState”).toString().equals(“complete”);
}
};
试一试{
线程睡眠(timeSleep*1000);
WebDriverWait wait=新的WebDriverWait(驱动程序,超时);
等待。直到(预期条件);
}捕获(可丢弃的e){
错误(“等待页面加载请求完成的超时。”,e);
}
By=By.xpath(//a[以(@id,'file'')]开头]”;
列表元素=driver.findElements(按);
对于(int Counter=0;Counter0){
记录器.错误(“Téléchargement ZIP non-finalizeéaprès attente de”+((nbSleep+1)*timeSleep*1000)+“secondes…”);
}
}捕获(可丢弃的e){
错误(“等待页面加载请求完成的超时。”,e);
}
driver.quit();
}

我看到了您正在使用的
FirefoxOptions
,我想建议您尝试另一个选项--
useDownloadDir
选项。我知道您已经使用了
浏览器.download.dir
,但这是另一种设置:

FirefoxOptions options = new FirefoxOptions();
options.setPreference("browser.download.folderList", 2);
options.setPreference("browser.download.dir", "C:\\Windows\\temp");
options.setPreference("browser.download.useDownloadDir", true);
options.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
options.setPreference("pdfjs.disabled", true);  // prevent PDF from opening after download

WebDriver driver = new FirefoxDriver(options);

谢谢你的回答,很抱歉我迟了回复,我已经试过了。提醒()。驳回();和alert().accept();但似乎无法解决问题。此选项实际上解决了我的问题options.setPreference(“pdfjs.disabled”,true);非常感谢。
FirefoxOptions options = new FirefoxOptions();
options.setPreference("browser.download.folderList", 2);
options.setPreference("browser.download.dir", "C:\\Windows\\temp");
options.setPreference("browser.download.useDownloadDir", true);
options.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
options.setPreference("pdfjs.disabled", true);  // prevent PDF from opening after download

WebDriver driver = new FirefoxDriver(options);