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