#java #flash #webdriver #swfupload #selenium-webdriver
#java #flash #webdriver #swfupload #selenium-webdriver
Вопрос:
Я больше программирую на стороне сервера и javascript. Я никогда особо не работал с Flash.
У меня есть надежная HTML-форма, основанная на swfuploader на основе flash, и мне нужно протестировать ее с помощью 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.0 b3 …
Ответ №1:
Это функция безопасности, предотвращающая доступ веб-сайта к локальной файловой системе на стороне клиента. Файловая система и доступ к ней возможен только при взаимодействии с пользователем в трассировке стека. IE: щелчок мыши.
Получение контроля над мышью также было бы нарушением безопасности.
Лучшим вариантом было бы инициировать selenium из функции flash с помощью события onclick.
Эта функция сначала позволит вам выбрать «тестовые» файлы для загрузки, а затем запустить тесты selenium с помощью функции.
Комментарии:
1. Как я уже сказал, я никогда не использовал flash и не собираюсь. Я использую драйверы Java Webdriver, также известные как selenium 2. Я могу инициировать тесты только из моих тестов java junit. К вашему сведению, вы можете взять под контроль свою мышь с помощью selenium 2, как это нарушение безопасности, когда selenium заключается в имитации действий пользователя? Тогда все было бы нарушением безопасности, не так ли?
2. Нарушение безопасности, о котором я говорил, было связано с flash, а не с selenium. Flash не может управлять мышью. Прошло несколько лет с тех пор, как я использовал selenium, и я не знал, что он может имитировать действия мыши.