2015-04-22 3 views
0

Я пытаюсь реализовать функциональность файла загрузки для своего веб-приложения с помощью webdriver. В chrome или firefox мы можем установить возможность загрузки файлов в определенное место после нажатия кнопки загрузки без приглашения к окну.Как загрузить файл из браузера IE с помощью webdriver-selenium

Но в IE 9 я не могу найти возможности для параметров загрузки.

Также после нажатия кнопки загрузки в IE, webdriver висит после запроса окна для сохранения/открытия/отмены. После нажатия кнопки Webdriver ничего не возвращает. Мне пришлось выйти из webdriver и повторно создать объект webdriver, чтобы перейти к следующему шагу.

Чтобы обработать подсказку в окне, я попытался использовать методы ключа Sikuli/send и т. Д. Все это работает только в том случае, если окно находится в фокусе. Это не работает, когда я запускаю скрипт, который заблокирован или запускается через удаленный доступ, как через Jenkins.

Как настроить IE no, чтобы запросить опцию сохранения, но загрузить файл на любой предопределенный путь. Как и в IE8, мы можем установить regedit для установки пути загрузки.

+0

в общем, вы получите URL файла, а затем вы называете некоторые не WebDriver функции, чтобы получить файл, учитывая, что URL (в питоне urllib.urlretrieve (URL, путь) или что-то в этом роде), то, что программирование язык вы используете? – dnlcrl

+0

Показать свой код © –

ответ

1

Selenium throws Modal dialog Present исключение, если файл скачать всплывающее окно. Несколько раз webdriver зависает на основе операций, выполняемых в браузере после всплывающего окна.

Вы можете сделать это вручную через реестр, если вы хотите: http://9to5it.com/internet-explorer-disable-do-you-want-to-open-or-save-this-file-prompt/

Если вы используете Java, как кодирование языка, вы можете использовать Robot класс. См. Ниже ссылку, например. How to download .docx file using Selenium webdriver in Java?

Там нет класса в c#, как Robot класса Java. Я использую AutoIT для обработки всплывающих окон Windows.

Надеюсь, это поможет.

-3

Чтобы скачать любой файл в браузере IE - лучше использовать файлы cookie для его выполнения. Пожалуйста, используйте куки, а не тратить никчемное время на поиск другого пути.

List item 
URL myUrl = new URL("linkName"); 
     URLConnection urlConn = myUrl.openConnection(); 
     urlConn.connect(); 
     CookieStore cookieStore = seleniumCookiesToCookieStore(); 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     httpClient.setCookieStore(cookieStore); 
     HttpGet httpGet = new HttpGet(downloadUrl); 
     System.out.println("Downloding file form: " + downloadUrl); 
     HttpResponse response = httpClient.execute(httpGet); 
     HttpEntity entity = response.getEntity(); 
     if (entity != null) { 
      InputStream inputStream = entity.getContent(); 
      FileOutputStream fileOutputStream = new FileOutputStream("LocationToSave"); 
      int read = 0; 
      byte[] bytes = new byte[1024]; 
      while ((read = inputStream.read(bytes)) != -1) { 
       fileOutputStream.write(bytes, 0, read); 
      } 
      fileOutputStream.close(); 
      System.out.println("Downloded " + entity.getContentType()); 
     } else {} 
Смежные вопросы