Скачивание файла с помощью Selenium
#1
Отправлено 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
Спасибо. :]
#2
Отправлено 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) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.
#3
Отправлено 25 ноября 2011 - 07:05
Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.
Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?
#4
Отправлено 25 ноября 2011 - 09:29
Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.
Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?
Настрой в Firefox профиль и при инициализации теста его подсовывай (см. мануал к селениуму). Хром скачивает в папку "Загрузки" профиля пользователя. IE кажется тоже.
#5
Отправлено 28 ноября 2011 - 13:37
Нифига не понятно. Требуется скачивание (Downloading) с сервера или закачивание (Uploading) на сервер?
Если скачивание, то через селениум кликаем по кнопке скачать, а дальше средствами языка проверять файл в темповой папке.
Если файл нужно закачать, через селениум.
Мне нужно скачать файл с сервера.
А можно как-то прописать диреторию,куда будет скачиваться файл?
Настрой в Firefox профиль и при инициализации теста его подсовывай (см. мануал к селениуму). Хром скачивает в папку "Загрузки" профиля пользователя. IE кажется тоже.
Хм.. А если я тестирую на различных машинах,с различными операционками?
Разве нельзя именно Селениуму указать,куда качать файл? Мне показывали нечто подобное, но не на похапэ. А как здесь сделать,я не знаю =//
#6
Отправлено 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 подставить нужный класс.
#7
Отправлено 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
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#8
Отправлено 23 декабря 2011 - 12:41
К сожалению на ПХП нет таких же средств как на джаве. Может кто то подсказать как лучше это сделать на ПХП с JsonWireProtocol?
На путь сохранения файла селениум не влияет. Его возможно указать только в браузере, или воспользоваться дополнительными библиотеками для автоматизации работы с окном сохранения файла(в случае с 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
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных