Загрузка файлов с помощью гема selenium-client

Я использую гем selenium-client с Webrat и Cucumber для тестирования проекта рельсов. У меня Cucumber настроен примерно так, как описано здесь: https://github.com/cucumber/cucumber/wiki/Setting-up-Selenium

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

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


person Rodreegez    schedule 10.08.2009    source источник


Ответы (2)


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

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

person AutomatedTester    schedule 10.08.2009

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

Вам нужно использовать firefox с хромированной серверной частью, и вам нужно указать абсолютный путь к файлу.

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

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

person Rodreegez    schedule 04.11.2009