2015-03-13 2 views
0

У меня есть ссылка «Экспорт файлов», и когда я нажимаю на нее, она открывает новое дочернее окно с такими параметрами, как «Открыть файл», «Сохранить файл» и «ОК» или «Отменить» , Когда я вручную просматриваю шаги и нажимаю клавишу ввода, он работает, и файл сохраняется, но когда я автоматизирую, ничего не происходит.Ручка всплывающего окна в Selenium Web Driver с использованием C#

Это мой код:

//Click Export link 
driver.FindElement(By.Id("ReportViewer1_ctl01_ctl05_ctl01")).Click(); 
//Switch to popup window 
driver.SwitchTo().Window(Driver.Instance.WindowHandles.Last()); 
//Click Enter to accept save option 
driver.SwitchTo().ActiveElement().SendKeys(Keys.Enter); 
//Close child window 
driver.Close(); 
//Switch back to Parent window 
driver.SwitchTo().Window(Driver.Instance.WindowHandles.First()); 

Проблема заключается в том, что окно застрял в родительском окне, и я не в состоянии послать «Enter» в всплывающем окне

ответ

2

С, загрузки файлов не является родным для браузера, с Selenium невозможно. Помните, что Selenium - это только инструмент для автоматизации браузера. Однако вы можете справиться с этим при настройке профиля.

FirefoxProfile profile = new FirefoxProfile(); 
WebDriver driver = new FirefoxDriver(profile); 

profile.setPreference("browser.helperApps.neverAsk.saveToDisk" , "application/octet-stream;application/csv;text/csv;application/vnd.ms-excel;"); 
profile.setPreference("browser.helperApps.alwaysAsk.force", false); 
profile.setPreference("browser.download.manager.showWhenStarting",false); 
profile.setPreference("browser.download.folderList", 2); 
profile.setPreference("browser.download.dir","e:\\SampleExcel"); 

См this

+0

Когда я попробовать этот метод, я получаю исключение browser.download.manager.showWhenStarting не может быть отменено: замороженное значение = False желаемое значение = False, так что я сделал, это удалить this profile.setPreference ("browser.download.manager.showWhenStarting", false); из кода, но мне все еще не повезло, я все еще получаю сохранение в виде диалогового окна. – SQATube

0

проблема решена! Если у кого-то есть проблема с загрузкой файла с помощью selenium Webdriver, это решение.

[TestClass] 
public class UnitTest1 
{ 
    [TestMethod] 
    public void FileDownload() 
    { 
     FirefoxProfile profile = new FirefoxProfile(); 
     profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream"); 
     IWebDriver driver = new FirefoxDriver(profile); 
     driver.Navigate().GoToUrl("http://www.joomla.org/download.html"); 
     Thread.Sleep(3000); 
     driver.FindElement(By.Id("latest")).Click(); 
     driver.Close(); 
    } 
} 
-2

Это можно сделать с помощью AutoIt Script

Смежные вопросы