http://www.testclass.net/ 測試教程網,專業的selenium 學習網站。
為什麼選python?
之前的菜鳥系列是基於java的,一年沒學其實也忘的差不多了,目前所測的產品部分也是python寫的,而且團隊也在推廣python ,其實就測試人員來說,python也相當受歡迎。易學,易用。翻翻各測試招聘,python出現的概率也頗高。
平臺搭建:
前一篇中已經介紹,如果你也想體驗一下自動化魅力,那就趕快搭建自己的環境吧~!
selenium + python自動化測試環境搭建
第一個指令碼:
下面看看python 穿上selenium webdriver 是多麼的性感:
# coding = utf-8
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()
怎麼樣?相信不懂程式碼的人都能看懂,但還是請容我在這裡囉嗦一下每一句的含義:
# coding = utf-8
可加可不加,開發人員喜歡加一下,防止亂碼嘛。
from selenium import webdriver
要想使用selenium的webdriver 裡的函式,首先把包導進來嘛
browser = webdriver.Firefox()
我們需要操控哪個瀏覽器呢?Firefox ,當然也可以換成Ie 或 Chrome 。browser可以隨便取,但後面要用它操縱各種函式執行。
browser.find_element_by_id("kw").send_keys("selenium")
一個控制元件有若干屬性id 、name、(也可以用其它方式定位),百度輸入框的id 叫kw ,我要在輸入框裡輸入 selenium 。多自然語言呀!
browser.find_element_by_id("su").click()
搜尋的按鈕的id 叫su ,我需要點一下按鈕( click() )。
browser.quit()
退出並關閉視窗的每一個相關的驅動程式,它還有個類似的表弟。
browser.close()
關閉當前視窗 ,用哪個看你的需求了。
新增休眠
什麼?你說剛才太快沒看清瀏覽器的操作過程。請time出馬,讓他跑慢點。
# coding = utf-8
from selenium import webdriver
import time #調入time函式
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
time.sleep(0.3) #休眠0.3秒
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
time.sleep(3) # 休眠3秒
browser.quit()
time.sleep() 函式隨意插,哪裡太快插哪裡,再也不用擔心看不清指令碼的執行過程了。
其實,這個函式的真正用途不是給我們看指令碼的執行過程的,有時候網路原因,或頁面載入慢。假設搜尋框輸入框輸入了selenium ,搜尋按鈕還沒載入出來,那麼指令碼就報錯。在適當的位置加入time.sleep()有助於減少網路原因造成的指令碼執行失敗;
輸出
什麼?在執行指令碼的時候,上了個廁所,你都不知道剛才的指令碼是否執行成功了。把剛才訪問頁面的title 列印出來。
# coding = utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
print driver.title # 把頁面title 列印出來
driver.quit()
雖然我沒看到指令碼的執行過程,但我在執行結果裡看到了
>>>
百度一下,你就知道
說明頁面正確被我開啟了。
--------------------------
學習更多selenium 內容: