Перейти к содержимому

Фотография

Скачивание файла с помощью Selenium


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 patr14ek

patr14ek

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 23 ноября 2011 - 13:58

Доброго времени суток!
У меня возникла следующая проблема: необходимо протестировать автоматическую загрузку файла по клику на ссылку.
Я пробовала использовать метод attachFile: $this->attachFile("xpath=id('mainGrid')/div[3]/div/div[6]/div", dirname( __FILE__ ));
Однако тест падает с ошибкой: java.lang.RuntimeException: Malformed URL </path/to/tests/functional/Validation/>, .
Скажите пожалуйста,что я делаю не так или можно ли сделать это как-то по-другому.
Использую Selenium RC + phpunit + Firefox 3.6
Спасибо. :]
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#2 point80

point80

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 24 ноября 2011 - 07:52

Доброго времени суток!
У меня возникла следующая проблема: необходимо протестировать автоматическую загрузку файла по клику на ссылку.
Я пробовала использовать метод attachFile: $this->attachFile("xpath=id('mainGrid')/div[3]/div/div[6]/div", dirname( __FILE__ ));
Однако тест падает с ошибкой: java.lang.RuntimeException: Malformed URL </path/to/tests/functional/Validation/>, .
Скажите пожалуйста,что я делаю не так или можно ли сделать это как-то по-другому.
Использую Selenium RC + phpunit + Firefox 3.6
Спасибо. :]


Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.
  • 0

#3 patr14ek

patr14ek

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 25 ноября 2011 - 07:05

Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.


Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#4 point80

point80

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 25 ноября 2011 - 09:29


Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.


Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?



Настрой в Firefox профиль и при инициализации теста его подсовывай (см. мануал к селениуму). Хром скачивает в папку "Загрузки" профиля пользователя. IE кажется тоже.
  • 0

#5 patr14ek

patr14ek

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 28 ноября 2011 - 13:37



Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.


Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?



Настрой в Firefox профиль и при инициализации теста его подсовывай (см. мануал к селениуму). Хром скачивает в папку "Загрузки" профиля пользователя. IE кажется тоже.



Хм.. А если я тестирую на различных машинах,с различными операционками?
Разве нельзя именно Селениуму указать,куда качать файл? Мне показывали нечто подобное, но не на похапэ. А как здесь сделать,я не знаю =//
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#6 ak40u

ak40u

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 29 ноября 2011 - 09:19




Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.


Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?



Настрой в Firefox профиль и при инициализации теста его подсовывай (см. мануал к селениуму). Хром скачивает в папку "Загрузки" профиля пользователя. IE кажется тоже.



Хм.. А если я тестирую на различных машинах,с различными операционками?
Разве нельзя именно Селениуму указать,куда качать файл? Мне показывали нечто подобное, но не на похапэ. А как здесь сделать,я не знаю =//


На путь сохранения файла селениум не влияет. Его возможно указать только в браузере, или воспользоваться дополнительными библиотеками для автоматизации работы с окном сохранения файла(в случае с IE и FF).
Для IE на win7 я использовал Autoit со встроенными функциями controlSend, controlClick - т.к. окно сохранения файла имеет стандартные управляющие элементы.
Для FF на win7 я использовал свой, заранее созданный профиль, в котором, в настройках указал путь, куда сохранять закачки, и убрал галку, чтобы не показывал окно загрузки файла. Потом, когда надо было качать файл из FF в селениуме (webdriver+java) при создании объекта webdriver, аргументом передавал этот профиль:
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("SelenProfile"); // имя ранее созданного профиля
WebDriver driver = new WebDriver(profile); // вместо WebDriver подставить нужный класс.

  • 0

#7 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 29 ноября 2011 - 10:45

На путь сохранения файла селениум не влияет. Его возможно указать только в браузере, или воспользоваться дополнительными библиотеками для автоматизации работы с окном сохранения файла(в случае с IE и FF).
Для IE на win7 я использовал Autoit со встроенными функциями controlSend, controlClick - т.к. окно сохранения файла имеет стандартные управляющие элементы.
Для FF на win7 я использовал свой, заранее созданный профиль, в котором, в настройках указал путь, куда сохранять закачки, и убрал галку, чтобы не показывал окно загрузки файла. Потом, когда надо было качать файл из FF в селениуме (webdriver+java) при создании объекта webdriver, аргументом передавал этот профиль:

ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("SelenProfile"); // имя ранее созданного профиля
WebDriver driver = new WebDriver(profile); // вместо WebDriver подставить нужный класс.


А можно профиль сетапить непосредственно при запуске браузера:
 def initialize
    profile = Selenium::WebDriver::Firefox::Profile.new
    profile['browser.download.dir'] = Settings::PATH_TO_SAVE  #здесь путь, куда сохранять
    profile['browser.download.folderList'] = 2
    profile['browser.download.manager.closeWhenDone'] = true
    profile['browser.helperApps.neverAsk.saveToDisk'] = "application/vnd.ms-excel" # Тут надо прописать тот формат, который вам нужен

    @browser = Selenium::WebDriver.for :firefox, :profile => profile
  end

  • 0

#8 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 23 декабря 2011 - 12:41


На путь сохранения файла селениум не влияет. Его возможно указать только в браузере, или воспользоваться дополнительными библиотеками для автоматизации работы с окном сохранения файла(в случае с IE и FF).
Для IE на win7 я использовал Autoit со встроенными функциями controlSend, controlClick - т.к. окно сохранения файла имеет стандартные управляющие элементы.
Для FF на win7 я использовал свой, заранее созданный профиль, в котором, в настройках указал путь, куда сохранять закачки, и убрал галку, чтобы не показывал окно загрузки файла. Потом, когда надо было качать файл из FF в селениуме (webdriver+java) при создании объекта webdriver, аргументом передавал этот профиль:

ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("SelenProfile"); // имя ранее созданного профиля
WebDriver driver = new WebDriver(profile); // вместо WebDriver подставить нужный класс.


А можно профиль сетапить непосредственно при запуске браузера:
 def initialize
    profile = Selenium::WebDriver::Firefox::Profile.new
    profile['browser.download.dir'] = Settings::PATH_TO_SAVE  #здесь путь, куда сохранять
    profile['browser.download.folderList'] = 2
    profile['browser.download.manager.closeWhenDone'] = true
    profile['browser.helperApps.neverAsk.saveToDisk'] = "application/vnd.ms-excel" # Тут надо прописать тот формат, который вам нужен

    @browser = Selenium::WebDriver.for :firefox, :profile => profile
  end

К сожалению на ПХП нет таких же средств как на джаве. Может кто то подсказать как лучше это сделать на ПХП с JsonWireProtocol?
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных