Here's a solution. Set Firefox's preferences to save automatically, and not have the downloads window popup. Then you just grab the file, and it'll download.
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestCase {
FirefoxProfile firefoxProfile = null;
WebDriver driver = null;
@BeforeClass(alwaysRun=true)
public void setUp(){
File downloadDir = new File("c:\\downloads");
if (!downloadDir.exists()){
downloadDir.mkdir();
}
}
@BeforeMethod
public void beforeMethod() {
firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList",2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting",false);
firefoxProfile.setPreference("browser.download.dir","c:\\downloads");
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","image/jpg, text/csv,text/xml,application/xml,application/vnd.ms-excel,application/x-excel,application/x-msexcel,application/excel,application/pdf");
}
@Test
public void downloadFile(){
driver = new FirefoxDriver(firefoxProfile);
driver.get("http://support.vendhq.com/entries/21265746-Sample-CSV-file-to-upload-into-trial-account");
driver.findElement(By.linkText("vend_products_31Aug12.csv")).click();
driver.close();
}
}
Note:
The value of browser.download.folderList can be set to either 0, 1, or 2.
When set to 0, Firefox will save all files downloaded via the browser on the user's desktop.
When set to 1, these downloads are stored in the Downloads folder.
When set to 2, the location specified for the most recent download is utilized again.
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestCase {
FirefoxProfile firefoxProfile = null;
WebDriver driver = null;
@BeforeClass(alwaysRun=true)
public void setUp(){
File downloadDir = new File("c:\\downloads");
if (!downloadDir.exists()){
downloadDir.mkdir();
}
}
@BeforeMethod
public void beforeMethod() {
firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList",2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting",false);
firefoxProfile.setPreference("browser.download.dir","c:\\downloads");
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","image/jpg, text/csv,text/xml,application/xml,application/vnd.ms-excel,application/x-excel,application/x-msexcel,application/excel,application/pdf");
}
@Test
public void downloadFile(){
driver = new FirefoxDriver(firefoxProfile);
driver.get("http://support.vendhq.com/entries/21265746-Sample-CSV-file-to-upload-into-trial-account");
driver.findElement(By.linkText("vend_products_31Aug12.csv")).click();
driver.close();
}
}
Note:
The value of browser.download.folderList can be set to either 0, 1, or 2.
When set to 0, Firefox will save all files downloaded via the browser on the user's desktop.
When set to 1, these downloads are stored in the Downloads folder.
When set to 2, the location specified for the most recent download is utilized again.
when dowload button is clicked a system generated window is opened for confirmation of the download,selenium is unable to handle this window.how to handle those windows using selenium?
ReplyDeletethanks in advance
can you please post a article regarding grid with screen shots and step by step procedure
ReplyDeletethanks in advance
You can refer this - seleniumng.wordpress.com
Delete