опять про селениум и файл диалоги
#1
Отправлено 04 августа 2011 - 10:48
если с сохранением файла с фаерфоксом можно решить проблему путем настройки дефолтного пути, то как приложить файл на аплоад непонятно
читал про запуск паралельных скриптов autoit - правда не совсем понятно как это работает - никогда с ним раньше не работали
и возник вопрос - возможно ктото применял подход - управлять диалогом браузера прямо из java? (програмно записать путь к файлу и нажать кнопку)
понятно что универсально для всех браузеров написать сложно - но для начала хватило бы решения для фаерфокса
поделитесь опытом реально ли это и может быть ктото уже делал подобные вещи?
и вообще как решаете проблему работы с openfile dialog и savefile dialog ?
#2
Отправлено 04 августа 2011 - 11:35
#3
Отправлено 04 августа 2011 - 11:45
selenium.type("locator", "/var/www/file.log");
только запускать как *chrome
#4
Отправлено 04 августа 2011 - 11:48
Я как раз таки решал проблему через AutoIt, но интересно узнать и о других возможных решениях.
а для справки, пожалуйста, расскажите еще и про autoit...
#5
Отправлено 04 августа 2011 - 11:50
может так?
selenium.type("locator", "/var/www/file.log");
только запускать как *chrome
честно говоря не понял о чем речь
в поля для ввода адреса записывать не получится - у браузеров есть защиты от интернет-ботов, которые портят ссылки
#6
Отправлено 04 августа 2011 - 11:56
может так?
selenium.type("locator", "/var/www/file.log");
только запускать как *chrome
честно говоря не понял о чем речь
в поля для ввода адреса записывать не получится - у браузеров есть защиты от интернет-ботов, которые портят ссылки
защиты от ботов, которые портят ссылки? эт как?
#7
Отправлено 04 августа 2011 - 12:11
может так?
selenium.type("locator", "/var/www/file.log");
только запускать как *chrome
честно говоря не понял о чем речь
в поля для ввода адреса записывать не получится - у браузеров есть защиты от интернет-ботов, которые портят ссылки
защиты от ботов, которые портят ссылки? эт как?
ну мы пробовали вводит путь прямо в поле в браузере - в конце там автоматом приписывлася некий символ, после чего файл не находился
#8
Отправлено 04 августа 2011 - 12:26
Какой символ приписывался?
#9
Отправлено 04 августа 2011 - 12:35
focus(fieldLocator); keyDownNative(String.valueOf(KeyEvent.VK_SPACE)); Thread.sleep(2000); typeNative(fileLocator); keyPressNative(String.valueOf(KeyEvent.VK_ENTER));
Для IE:
click(fieldLocator); Thread.sleep(2000); typeNative(fileLocator); keyPressNative(String.valueOf(KeyEvent.VK_ENTER));Для других браузеров ещё проще, хотя возможно для полной кроссплатформенности и придётся поподбирать последовательность. Никакой серьёзной проблемы там нет, разве что для нормальной реализации надо ещё в Selenium добавить метод uploadFile для перекидки файлов на сторону RC - в случае если тесты и RC запущены не на одной машине. Никаких костылей типа AutoIt не нужно конечно.
#10
Отправлено 04 августа 2011 - 12:39
Скорее всего этот символ сами и вводили. Нет в браузерах такой защиты, есть защита только от манипуляций с полем <input type="file"> из JavaScript.ну мы пробовали вводит путь прямо в поле в браузере - в конце там автоматом приписывлася некий символ, после чего файл не находился
#11
Отправлено 04 августа 2011 - 14:54
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#12
Отправлено 04 августа 2011 - 15:41
#13
Отправлено 04 августа 2011 - 16:46
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#14
Отправлено 05 августа 2011 - 04:56
Нативные методы... Переходите уже на 2.0 :)
а что сделано в 2,0 для работы с файловыми диалогами? мы как раз с нуля внедряем 2,0
#15
Отправлено 05 августа 2011 - 20:19
Просто делаете fileInputField.sendKeys(pathToYourFile) -- и всё работает.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#16
Отправлено 08 августа 2011 - 05:42
WebDriver имеет полноценную поддержку для аплоад-диалогов.
Просто делаете fileInputField.sendKeys(pathToYourFile) -- и всё работает.
fileInputField - это что? поле для ввода файла файлового диалога браузера?
если так - то как его определить?
у webdriver я такого метода или поля не вижу... если можно разъясните поподробнее(если можно с примерами) - гугл ничего конкретного не говорит
так же интересно есть ли какие то методы у webdriver для работы с savefileddialog
конечно для фаерфокса его можно закрывать с помощью java robot, но есть надежда что и для этого чтото было реализовано
#17
Отправлено 08 августа 2011 - 06:53
WebElement fileInput = driver.findElement(By.name("file_1"));
fileInput.sendKeys(pathToYourFile);
А вот для download поддержки пока нет.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#18
Отправлено 08 августа 2011 - 08:02
Да, это поле input типа file.
WebElement fileInput = driver.findElement(By.name("file_1"));
fileInput.sendKeys(pathToYourFile);
А вот для download поддержки пока нет.
а понятно... я понадеялся несколько на другое
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных