Обходной путь к вызову функции «selectFiles» для объекта Flash - PullRequest
2 голосов
/ 17 мая 2011

Я больше программист на стороне сервера и на JavaScript.Я никогда не делал много с Flash.

У меня есть надежная HTML-форма на основе флэш-загрузчика swfuploader, и мне нужно протестировать ее с Selenium 2 / WebDriver.

Проблема в том, что

movieContent.CallFunction('<invoke name="selectFiles" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');

не поддерживается во Flash 10 ...

Что мы должны делать?Если бы это было возможно, я мог бы js.executeScript(script);

Но теперь я должен сделать что-то вроде movieContent.click() в моих тестах java junit / selenium, но это не вызывает окно выбора файла, это не делаетчто угодно.

Можно переместить мышь к указанным координатам и щелкнуть, используя MoveToOffsetAction, но мне не удалось сделать это с FirefoxDriver и chromeDriver 2.0b3 ...

1 Ответ

0 голосов
/ 17 мая 2011

Это функция безопасности, предотвращающая доступ веб-сайта к локальной файловой системе на стороне клиента.Доступ к файловой системе возможен только при взаимодействии пользователя в трассировке стека.IE: щелчок мышью.Взятие контроля над мышью также будет нарушением безопасности.Лучше всего было бы инициировать селен с помощью функции flash с помощью события onclick.Эта функция сначала позволит вам выбрать «тестовые» файлы для загрузки, а затем запустить функцию проверки на селен.

...