Загрузка файлов с использованием селена-клиента - PullRequest
0 голосов
/ 10 августа 2009

Я использую гем Selen-Client с Webrat и Cucumber для тестирования проекта rails. Я настроил Cucumber, как описано здесь: http://wiki.github.com/aslakhellesoy/cucumber/setting-up-selenium

Моя проблема в том, что Selenium не может загружать файлы. В идеале я хотел бы иметь возможность реплицировать веб-метод 'attach_file'. Я попытался уклониться от проблемы, используя метод type для клиента selenium, чтобы ввести путь к требуемому файлу, но, похоже, это не удалось.

Есть ли у кого-нибудь предложение об обходном пути с использованием selenium-client (т. Е. Не обычного драгоценного камня Selenium)?

Ответы [ 2 ]

1 голос
/ 10 августа 2009

Обычный селен не может этого сделать, потому что безопасность браузера предотвращает запись javascript в элементы input = file. Это функция безопасности, благодаря которой ваш файл паролей не будет загружен хакерам, если вы зайдете на взломанный сайт.

http://jira.openqa.org/browse/SEL-63 имеет подробную информацию

0 голосов
/ 04 ноября 2009

Я наконец понял это.

Вам необходимо использовать Firefox с бэкэндом Chrome, и вам нужно указать абсолютный путь к файлу.

Я закончил тем, что создал вспомогательный модуль для указания пути к файлу и папку «fixtures», содержащую тестовое содержимое. Вот суть решения, которое я придумал: http://gist.github.com/214185

Таким образом, можно полностью воспроизвести метод attach_file от Webrat!

...