问题描述:
当需要使用浏览器的Flash功能进行一些文件上传(尤其是多文件)和在线编辑的时候,会发现,Phantomjs竟然不支持Flash,那怎么搞?
问题原因:
Phantomjs在版本1.9之后就移除了对Flash的内置支持,是为了让Phantomjs更加的符合无头测试的身份,因为Flash需要插件级别的支持,而服务器上往往是没有浏览器在运行的,所以我们只能通过其他方式解决。
使用场景:
此类问题有两种具体使用场景:
场景一:
当使用Phantomjs模拟用户提交数据的时候,服务器端只是通过检测请求头部来判断浏览器对Flash的支持性,浏览器的原生功能并没有依赖Flash实现。
解决办法:
模拟浏览器头部信息,使用伪造头部提交,骗过浏览器。Nodejs的环境之下可以使用phantomjs-flash(取自Github)来完成该功能。
场景二:
当确实会用到Flash的功能来进行文件上传之类操作
解决办法:
该种办法之下,无法再继续使用伪造头部信息来完成需求,此时我们需要结合
Slimerjs来进行Flash功能的使用,具体请参看http://www.slimerjs.org/
本文暂时没有评论,来添加一个吧(●'◡'●)