在 Flash Player 10+ 中,当且仅当用户与 Flash 对象的交互(例如,用户单击 Flash 按钮)触发基于浏览器的 SWF 时,它才能注入用户的剪贴板。这是使用flash.desktop.Clipboard.generalClipboard
对象的clear
和setData
方法完成的。
我已经在许多网络应用程序中使用了这个技巧(例如,通过ZeroClipboard和我自己以前的类似实现),但现在我想尽可能地围绕它进行一些自动化测试。有没有办法做到这一点?
我浏览了一些,但没有发现任何被证明可以用于这个非常特定目的的东西(来自我能找到的任何相关文档、博客等):
- FlashSelenium 仅依赖于
ExternalInterface
回调,这不算作用户交互。 - FlexUnit 似乎不是基于浏览器的。
- Adobe Genie 可能有效,也可能无效,老实说,我找不到足够有用的文档来说明。
- PhantomJS 1.4.x(和更早的版本)支持 Flash 并且可以发送“真实的”用户事件,所以这似乎是最好的选择。但是,我不喜欢使用落后 5 个次要版本(超过 1 年)的 PhantomJS 版本。有没有人使用 PhantomJS 来自动化 Flash 交互,可以确认它有效并提供一些建议?
请帮忙!