解决方法在Flash对象上调用“selectFiles”函数

时间:2011-05-16 21:20:21

标签: java flash webdriver swfupload selenium-webdriver

我更像是服务器端和javascript程序员。我从未对Flash做过多少工作。

我有一个基于flash的swfuploader的强大html表单,我需要使用Selenium 2 / WebDriver进行测试。

问题是,

movieContent.CallFunction('<invoke name="selectFiles" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');
Flash 10中不支持

...

我们该怎么办?如果有可能我可以js.executeScript(script);

但是现在我必须在我的java junit / selenium测试中做某种movieContent.click(),但它不会触发选择文件窗口,它不会做任何事情。

可以将鼠标移动到指定的坐标并使用MoveToOffsetAction单击,但我没有设法使用FirefoxDriver和chromeDriver 2.0b3 ...

1 个答案:

答案 0 :(得分:0)

这是一项防止网站访问本地客户端文件系统的安全功能。文件系统只能通过堆栈跟踪中的用户交互进行访问。 IE:鼠标点击。
控制鼠标也会违反安全规定。
你最好的选择是用你的onclick事件从flash功能启动selenium。
此功能首先允许您选择要上载的“测试”文件,然后让该功能触发selenium测试。