最近在看python的爬蟲框架(scrapy),一個(gè)詞概括就是:"酸爽"!等把selenium自動(dòng)化版塊講完后,打算寫一寫關(guān)于scrapy相關(guān)的知識(shí),打算從源碼角度解析下scrapy這個(gè)框架。我的想法是它不僅僅是用來爬網(wǎng)頁的,更重要的是如何檢測(cè)一個(gè)網(wǎng)站所有頁面的健康性...回到正題,我想講講這個(gè)話題的起因是同事在自動(dòng)化過程中遇到了flash的點(diǎn)擊操作,查閱網(wǎng)上的相關(guān)資料也得不到有效解決。今天我想想談?wù)勥@個(gè)flash的自動(dòng)化操作問題??!
隨著頁面做的越來越炫酷,flash被越來越多的嵌入到html網(wǎng)頁中。但是往往由于對(duì)flash的簡(jiǎn)單操作,卻阻斷了我們整個(gè)自動(dòng)化的測(cè)試過程!selenium目前的版本是3.0了對(duì)flash操作仍然沒有提出解決方案。其實(shí)我覺得,不是selenium不作為,而是它無能為力!!為什么這么說呢?我們知道flash是as語言開發(fā)的,我們想在網(wǎng)頁中操作flash,那么就必須通過js這個(gè)媒介來操作,問題是:開發(fā)有沒有開放操作flash的js接口?我們知道js如果要調(diào)用as,那么as源碼中必須使用ExternalInterface.addCallback函數(shù),把a(bǔ)s的接口綁定給js,這樣的話我們可以輕松的調(diào)用js以達(dá)到控制flash的目的...我們搜索selenium對(duì)flash的解決方案:99.99%都是向flex工程注入SeleniumFlexAPI.swc,然后通過調(diào)用js的接口來控制flash。
對(duì)于一些IT基礎(chǔ)比較薄弱的同學(xué)來說,始終不知道如何按照網(wǎng)上的步驟來進(jìn)行下去,這里我對(duì)這個(gè)方案做個(gè)簡(jiǎn)單的解釋如下:
1.這個(gè)是需要原flash工程的,不是你得到的一個(gè)簡(jiǎn)單的swf文件就能重新編譯的。簡(jiǎn)單的說就是找你們開發(fā)吧,讓他把SeleniumFlexAPI.swc加入到被操作Flash(Flex)的工程文件的Build庫中,重新Build Flash,然后重新發(fā)布到web上。這樣你對(duì)這個(gè)新的flash可能用js進(jìn)行操作了。