Sah*_*gal 1 testng selenium selenium-firefoxdriver selenium-webdriver
我有一个上传,压缩和下载pdf文件的测试.除下载部分外,一切正常.当我们点击下载时,我无法获得如何处理Firefox中的确认弹出/保存或打开文件对话框.我尝试修改firefox配置但仍然无法解决它.有人可以帮忙吗?
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.dir", "C:\\Users\\Sahil\\Downloads\\");
profile.setPreference("browser.helperApps.neverAsk.openFile","application/pdf");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.closeWhenDone", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
, 0 profile.setPreference("pdfjs.disabled", true);
WebDriver driver=new FirefoxDriver(profile);
driver.get("http://www.ilovepdf.com/compress_pdf");
driver.findElement(By.id("pickfiles")).click();
Runtime.getRuntime().exec("C:\\Users\\Sahil\\Documents\\Au\\Second.exe");
WebDriverWait wait=new WebDriverWait(driver, 100);
WebElement element1=wait.until(ExpectedConditions.elementToBeClickable(By.id("uploadfiles")));
element1.click();
WebElement element=wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("a#download")));
element.click();
Run Code Online (Sandbox Code Playgroud)
您有很多不需要的偏好.你需要的只是这个:
// Create a firefoxprofile for firefox specific settings
FirefoxProfile profile = new FirefoxProfile();
// Set the downloads folder
profile.setPreference("browser.download.dir", path/to/folder);
// Download files to the downloads folder
profile.setPreference("browser.download.folderList", 2);
// Don't show downloads window when download starts
profile.setPreference("browser.download.manager.showWhenStarting", False);
// Prevent file download dialog to be shown for certain MIME-types
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您应该确保指定了正确的MIME类型.您可以在浏览器中监控网络并手动下载文件.应使用特定内容类型进行GET请求.确保已将内容类型添加到您的browser.helperApps.neverAsk.saveToDisk首选项中.
编辑!
我刚刚检查了您指定的网站的MIME类型.您正在尝试自动保存application/pdf.但是,您正在下载MIME类型的文件application/octet-stream.你需要改变这个:
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
Run Code Online (Sandbox Code Playgroud)
对此:
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");
Run Code Online (Sandbox Code Playgroud)
如何找到MIME类型
在点击下载按钮之前打开firefox控制台并转到网络选项卡.

现在,如果您点击下载按钮,您将看到已发出GET请求.如果您打开此请求,则可以看到响应的内容类型.这是您的MIME类型.

| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |