最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrapy这个框架。我的想法是它不仅仅是用来爬网页的,更重要的是如何检测一个网站所有页面的健康性...回到正题,我想讲讲这个话题的起因是同事在自动化过程中遇到了flash的点击操作,查阅网上的相关资料也得不到有效解决。今天我想想谈谈这个flash的自动化操作问题!!
随着页面做的越来越炫酷,flash被越来越多的嵌入到html网页中。但是往往由于对flash的简单操作,却阻断了我们整个自动化的测试过程!selenium目前的版本是3.0了对flash操作仍然没有提出解决方案。其实我觉得,不是selenium不作为,而是它无能为力!!为什么这么说呢?我们知道flash是as语言开发的,我们想在网页中操作flash,那么就必须通过js这个媒介来操作,问题是:开发有没有开放操作flash的js接口?我们知道js如果要调用as,那么as源码中必须使用ExternalInterface.addCallback函数,把as的接口绑定给js,这样的话我们可以轻松的调用js以达到控制flash的目的...我们搜索selenium对flash的解决方案:99.99%都是向flex工程注入SeleniumFlexAPI.swc,然后通过调用js的接口来控制flash。
对于一些IT基础比较薄弱的同学来说,始终不知道如何按照网上的步骤来进行下去,这里我对这个方案做个简单的解释如下:
1.这个是需要原flash工程的,不是你得到的一个简单的swf文件就能重新编译的。简单的说就是找你们开发吧,让他把SeleniumFlexAPI.swc加入到被操作Flash(Flex)的工程文件的Build库中,重新Build Flash,然后重新发布到web上。这样你对这个新的flash可能用js进行操作了。
网友评论