您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
Selenium自動(dòng)化過程中如何操作Flash動(dòng)畫
作者:不再有的年月 發(fā)布時(shí)間:[ 2017/4/7 16:06:42 ] 推薦標(biāo)簽:功能測(cè)試 Selenium 自動(dòng)化測(cè)試

  二、右鍵點(diǎn)擊工程選擇Build Path下的子菜單項(xiàng)Add Libraies...添加我們選擇的jre

  選擇我們JRE System library-next->Workspace default JRE(jire6)點(diǎn)擊Finish。
  3.考慮運(yùn)行的兼容性(不同版本的jdk與jre配合需要此配置,相同版本的不需要),右擊該工程選擇菜單項(xiàng)Project->Properties。在彈出框中做一下配置:

  如何添加外部包?
  選中該工程右鍵點(diǎn)擊該工程選擇Build Path->Add  External Archives...后導(dǎo)入本地目錄下的sikuli-script.jar即可
  上面我們從sikuli角度來操作flash?偨Y(jié)下這種解決方案遇到的坑和注意點(diǎn)。
  1.32系統(tǒng)上sikuli的環(huán)境搭建是問題不大的,除了sikuli ide的運(yùn)行環(huán)境需要配置成jre6。64位系統(tǒng)上有點(diǎn)坑。上文中我也較詳細(xì)的說明了ide的配置以及如何在eclipse中運(yùn)行sikuli腳本,我相信你肯定能運(yùn)行起來。
  2.注意點(diǎn):sikuli對(duì)我們截圖的匹配查找是在我們當(dāng)前可視范圍內(nèi)的。這句話怎么理解呢?比如上文中我在桌面上截了一個(gè)firefox快捷圖標(biāo)的圖片,當(dāng)運(yùn)行到點(diǎn)擊這個(gè)快捷圖標(biāo)時(shí),突然彈出了一段小廣告擋住了這個(gè)快捷圖標(biāo),那么我們的sikuli是找不到該圖片的。我的解決辦法是在運(yùn)行sikuli腳本之前,好先運(yùn)行下AutoIt的一個(gè)小腳本,是上文中我們頻繁使用到的WinActivate($hWnd)函數(shù),可以確保某個(gè)窗口控件是可視的。
  說到這來java部分也這樣了,但是本篇還沒有結(jié)束,因?yàn)槲覀冞沒有講python中如何使用sikuli-script.jar這個(gè)包!
  sikuli-script.jar是java下的包,python使用java的包先想到的是jpython。但是為了操作個(gè)flash把python解析器設(shè)置為jpython我認(rèn)為沒人能接受。那么有一種神器可以連接python與java還能保證你的運(yùn)行環(huán)境是cpython的,那這個(gè)包是jpype。
  對(duì)于32位系統(tǒng),安裝這個(gè)是簡單的你可以下載jpype.exe程序直接安裝。jpype.exe暫時(shí)是沒有64位,我們選擇安裝包安裝。路徑為:https://pypi.python.org/pypi/JPype1。我們下載后運(yùn)行python setup.py install。發(fā)現(xiàn)可能是有問題的,原因是在windows平臺(tái)上無法安裝python c extension的擴(kuò)展包,我們下載專用的編譯器Microsoft Visual C++ Compiler for Python 2.7好了下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=44266。
  對(duì)于jpype的使用也是非常簡單的,對(duì)于32位系統(tǒng)操作sikuli-script.jar這個(gè)包太簡單幾行代碼:
  #coding=utf-8
  import jpype
  jvmPath = jpype.getDefaultJVMPath()
  jpype.startJVM(jvmPath,"-ea",r"-Djava.class.path=D:\tutorial\tutorialspiderssikuli-script.jar")#jvmPath為jvm.dll的路徑可以人為指定并指定外部包的加載路徑
  JDClass =jpype.JClass("org.sikuli.script.Screen")
  s=JDClass()
  imgpath = "D:/img/"
  s.wait(imgpath + "firfox.png", 5)
  s.doubleClick(imgpath + "firfox.png");
  jpype.shutdownJVM()
  這段代碼與我們上文的java代碼意義是一樣。為什么說對(duì)于32位是沒有問題的,難道64位python解析器無法這樣用嗎?
  首先,并不是說64位解析器無法通過jpype來啟動(dòng)一個(gè)虛擬機(jī),但是問題是我們只能啟動(dòng)一個(gè)64位的jvm。但是我們上文說了sikuli-script.jar這個(gè)包無法在64位的jre中運(yùn)行的,我們嘗試通過手動(dòng)給出32位jre下面jvm.dll的路徑來啟用JVM進(jìn)而運(yùn)行sikuli-script.jar這個(gè)包。我的嘗試代碼:
  #coding=utf-8
  import jpype
  jpype.startJVM(r"C:Program Files (x86)Javajre6inclientjvm.dll","-ea",r"-Djava.class.path=D:\tutorial\tutorialspiderssikuli-script.jar")#jvmPath為32位jre的jvm.dll路徑
  JDClass =jpype.JClass("org.sikuli.script.Screen")
  s=JDClass()
  imgpath = "D:/img/"
  s.wait(imgpath + "firfox.png", 5)
  s.doubleClick(imgpath + "firfox.png");
  jpype.shutdownJVM()
  發(fā)現(xiàn)是無法啟動(dòng)jvm的,原因可能很簡單我們?cè)?4位的python解析器上運(yùn)行32位jvm.dll多少有點(diǎn)問題。那么我們?cè)?4位上如何使用sikuli呢?沒辦法我能想到的只有曲線救國了...對(duì)的,是用python調(diào)用控制臺(tái)來運(yùn)eclipse里的工程。我的做法如下:
  1.導(dǎo)出該工程為jar包。
  步驟:選擇該工程選擇菜單的File->Export,選擇JAR File,然后一路向西導(dǎo)出到某個(gè)路徑下,我直接放桌面了。
  2.修改改jar包中的MANIFEST.MF文件。
  步驟一、修改改jar包后綴名為zip。比如將abc.jar變成abc.zip
  步驟二、修改里面的META-INF中的MANIFEST.MF文件,添加Main-Class: com.STest

  步驟三、保存后修改abc.zip為abc.jar
  3.修改完jar包后我們直接編寫運(yùn)行這個(gè)jar的dos腳本如下:
  cmd命令:"C:Program Files (x86)Javajre6\binjava" -Djava.ext.dirs=C:lib -jar C:UsersPF-211X3Desktop\abc.jar
  這個(gè)簡單的說明吧!
  一、C:Program Files (x86)Javajre6\binjava是我們32位jre的路徑下java命令
  二、-Djava.ext.dirs命令參數(shù)如同jpype中的參數(shù)-Djava.class.path一樣為我們外部引用包,我這里是把sikuli-script.jar這個(gè)包放在C盤的lib下的
  三、-jar參數(shù)后面跟的是我們剛修改過的jar包
  以上只是個(gè)例子,具體路徑配置按自己個(gè)人情況界定。
  我們發(fā)現(xiàn)在個(gè)在cmd中是能正常運(yùn)行的,那么我們?nèi)绾卧趐ython中運(yùn)行這個(gè)我相信,不需要我多說了吧
  import os
  cmd=""C:Program Files (x86)Javajre6\binjava" -Djava.ext.dirs=C:lib -jar C:UsersPF-211X3Desktop\abc.jar"
  os.popen(cmd)
  好吧,我們總算通過曲線救國的方式使得python在64系統(tǒng)上用sikuli操作flash。在32位上還是用jpype吧!
  后我們做個(gè)簡單的總結(jié)吧:
  我們上面使用Autoit與sikuli方法操作flash,2種方法各有特色吧!當(dāng)然可能還有其他更好更方便的方法操作flash,希望知道的大神們能寫出來~~

上一頁12下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd