我正在尝试在我的应用程序中自动执行下载过程。
最后一步是一个对话框。
我希望Selenium
选择'保存文件'单击对话框中的单选按钮,然后单击“确定”。按钮。
这是否可以在Selenium Webdriver中使用?
注意:'提醒'没有工作。
它既不是窗口也不是警报,因此我无法切换到此对话框。
非常感谢任何帮助。
我看到的对话框与
相同WebDriver driver = new FirefoxDriver(); driver.get(" http://selenium-release.storage.googleapis.com/2.47/selenium-java-2.47.1.zip&#34);
我尝试过getWindowHandle()方法切换到对话框。但它没有工作
答案 0 :(得分:1)
您可以使用此代码下载文件,此处设置了所有弹出窗口和提醒,以便您自动执行下载过程:
public class fileUse {
public static String downloadPath = "D:\\downloads";
@Test
public void testDownload() throws Exception {
WebDriver driver = new FirefoxDriver(FirefoxDriverProfile());
driver.manage().window().maximize();
driver.get("FILE URL");
}
public static FirefoxProfile FirefoxDriverProfile() throws Exception {
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.dir", downloadPath);
profile.setPreference("browser.helperApps.neverAsk.openFile",
"text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
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.helperApps.neverAsk.saveToDisk", "application/zip");
return profile;
}
}
不要忘记导入org.testng.annotations.Test
库
答案 1 :(得分:0)
实际上它取决于浏览器,你使用的是Firefox
使用firefox配置文件下载文件。这个配置文件跳过firefox的dialoge框。 在线: -
pro.setPreference("browser.downLoad.folderList", 0);
browser.download.folderList的值可以设置为0,1或2.当设置为0时,Firefox会将通过浏览器下载的所有文件保存在用户的桌面上。设置为1时,这些下载内容存储在“下载”文件夹中。设置为2时,将再次使用为最近下载指定的位置。
您需要实施的Firefox个人资料代码: -
FirefoxProfile pro=new FirefoxProfile();
pro.setPreference("browser.downLoad.folderList", 0);
pro.setPreference("browser.helperApps.neverAsk.saveToDisk", "Applications/zip");
WebDriver driver=new FirefoxDriver(pro);
driver.get("http://selenium-release.storage.googleapis.com/2.47/selenium-java-2.47.1.zip");
希望它会对你有所帮助:)。
答案 2 :(得分:0)
下载提醒是基于Windows的警报。它不是由浏览器提出的。因此,您无法使用Selenium WebDriver对其进行自动化。您可以使用AutoIT或Robot框架自动执行基于Windows的弹出窗口。
答案 3 :(得分:-1)
请使用Auto IT工具并通过它自动化下载窗口部分。 使用javaScriptExecutor在脚本中调用AutoIT Sciprt。
希望它能奏效!