selenium 是一個web的自動化測試載入器,不少學習功能自動化的同學開始首選selenium ,相因為它相比QTP有諸多有點:
* 免費,也不用再為破解QTP而大傷腦筋
* 小巧,對於不同的語言它只是一個包而已,而QTP需要下載安裝1個多G 的程式。
* 這也是最重要的一點,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通過selenium完成自動化測試,而QTP只支援VBS
* 支援多平台:windows、linux、MAC ,支援多瀏覽器:ie、ff、safari、opera、chrome
* 支援分布式測試案例的執行,可以把測試案例分布到不同的測試機器的執行,相當於分發機的功能。
關於selenium的基礎知識與java平台的結合,我之前寫過一個《菜鳥學習自動化測試》系列,最近學python,所以想嘗試一下selenium的在python平台如何搭建;還好這方法的文章很容易,在此將搭建步驟整理分享。
搭建平台windows
準備工具如下:
-------------------------------------------------------------
下載python
http://python.org/getit/
下載setuptools 【python的基礎包工具】
http://pypi.python.org/pypi/setuptools
下載pip 【python的安裝包管理工具】
https://pypi.python.org/pypi/pip
-------------------------------------------------------------
因為版本都在更新,pyhton選擇2.7.xx ,setuptools 選擇你平台對應的版本,pip 不要擔心tar.gz 在windows下一樣可用。
安裝步驟:
1、python的安裝 ,這個不解釋,exe檔案運行安裝即可,既然你選擇python,相信你是熟悉python的,我安裝目錄C:\Python27
2、setuptools 的安裝也非常簡單,同樣是exe檔案,預設會找到python的安裝路徑,將安裝到C:\Python27\Lib\site-packages 目錄下
3、安裝pip ,我預設解壓在了C:\pip-1.3.1 目錄下
4、開啟命令提示字元(開始---cmd斷行符號)進入C:\pip-1.3.1目錄下輸入:
C:\pip-1.3.1 > python setup.py install
(如果提示python不是內部或外部命令!別急,去配置一下環境變數吧)
修改我的電腦->屬性->進階->環境變數->系統變數中的PATH為: 變數名:PATH 變數值:;C:\Python27 |
5、再切換到C:\Python27\Scripts 目錄下輸入:
C:\Python27\Scripts > easy_install pip
6、安裝selenium,(: https://pypi.python.org/pypi/selenium )
如果是連網狀態的話,可以直接在C:\Python27\Scripts 下輸入命令安裝:
C:\Python27\Scripts > pip install -U selenium
如果沒連網(這個一般不太可能),下載selenium 2.33.0 (目前的最新版本)
並解壓把整個目錄放到C:\Python27\Lib\site-packages 目錄下。
7、下載並安裝(http://www.java.com/zh_CN/download/chrome.jsp?locale=zh_CN)什嗎?你沒整過java,參考其它文檔吧!這不難。
8、 下載selenium 的服務端(https://code.google.com/p/selenium/)在頁面的左側列表中找到
selenium-server-standalone-XXX.jar
對!就是這個東西,把它下載下來並解壓;
在selenium-server-standalone-xxx.jar目錄下使用命令 java -jar selenium-server-standalone-xxx.jar啟動(如果打不開,查看是否連接埠被占 用:netstat -aon|findstr 4444)。
恭喜~! 你前期工作已經做了,上面的步驟確實有些繁瑣,但是並不難,不過我們已經完成成了,下面體驗一下成果吧! 拿python網站上的例子:
from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.keys import Keysimport timebrowser = webdriver.Firefox() # Get local session of firefoxbrowser.get("http://www.yahoo.com") # Load pageassert "Yahoo!" in browser.titleelem = browser.find_element_by_name("p") # Find the query boxelem.send_keys("seleniumhq" + Keys.RETURN)time.sleep(0.2) # Let the page load, will be added to the APItry: browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")except NoSuchElementException: assert 0, "can't find seleniumhq"browser.close()
(運行過程中如果出現錯誤:
WebDriverException: Message: u'Unexpected error launching Internet Explorer.
Protected Mode settings are not the same for all zones. Enable Protected Mo
de must be set to the same value (enabled or disabled) for all zones.'
更改IE的internet選項->安全,將Internet/本地Internet/受信任的站定/受限制的網站中的啟用保護模式全部去 掉勾,或者全部勾上。)
-----------------------------------------
selenium + python的一份不錯文檔
http://selenium.googlecode.com/git/docs/api/py/index.html
====================================如果想通過其它瀏覽器(IE Chrome)運行指令碼==========================================
安裝Chrome driver
chrome driver的在這裡。
1. 下載解壓,你會得到一個chromedriver.exe檔案(我點開,運行提示started no prot 9515 ,這是幹嘛的?連接埠9515被佔了?中間折騰了半天),後來才知道需要把這傢伙放到chrome的安裝目錄下...\Google\Chrome\Application\ ,然後設定path環境變數,把chrome的安裝目錄(我的:C:\Program Files\Google\Chrome\Application),然後再調用運行:
# coding = utf-8from selenium import webdriverdriver = webdriver.Chrome()driver.get('http://radar.kuaibo.com')print driver.titledriver.quit()
又報了個錯:
Chrome version must be >= 27.0.1453.0\n (Driver info: chromedriver=2.0,platform=Windows NT 5.1 SP3 x86)
說我chrome的版本沒有大於27.0.1453.0 ,這個好辦,更新到最新版本即可。
安裝IE driver
在新版本的webdriver中,只有安裝了ie driver使用ie進行測試工作。
ie driver的在這裡,記得根據自己機器的作業系統版本來下載相應的driver。
暫時還沒嘗試,應該和chrome的安裝方式類似。
記得配置IE的保護模式
如果要使用webdriver啟動IE的話,那麼就需要配置IE的保護模式了。
把IE裡的保護模式都選上或都勾掉就可以了。