標籤:
selenium + python 多瀏覽器測試
支援庫包
在學習 Python + Selenium 正篇之前,先來看下對多瀏覽器類比的支援。目前selenium包中已包含webdriver,help(webdriver) 查看其下package;也可以查看源檔案
啟動 Firefox
firefox是selenium支援得比較成熟的瀏覽器,很多新的特性都會在firefox中體現。但是做頁面的測試,啟動速度比較慢,啟動以後運行速度還是可以接受的。可直接啟動firefox瀏覽器,參見如下代碼:
# !/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverbrowser = webdriver.Firefox()browser.get(‘http://www.baidu.com‘)
注意:你的電腦需要已裝Firefox,執行後會新開一Firefox視窗,並執行開啟百度首頁的操作。
啟動 Chrome
啟動 chrome 需要下載 chromedriver,google :http://chromedriver.storage.googleapis.com/index.html; 被禁就下這個吧:http://pan.baidu.com/s/1dD8Mn1f
將該exe放入chrome程式包中,如
將該地址添加入 path 環境變數中,如:D:\chrome(X64)-38.0.2125.101\Chrome-bin
同樣的,啟動 chrome 開啟百度首頁,參見如下代碼:
# !/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverbrowser = webdriver.Chrome()browser.get(‘http://www.baidu.com‘)
若仍執行出錯,建議查看下chrome版本,可能就是chrome本身的問題,或者參看下方使用os變數的方式。
啟動 IE
啟動 IE 類似 chrome,需要下載 IEdriver,google :https://code.google.com/p/selenium/downloads/list; 被禁就下這個吧:
類似操作將此 exe 放入IE程式包及加入 path;代碼同chrome的,差別只在 browser = webdriver.Ie() ;
若環境變數啟動 webdriver 方式有問題,代碼執行報錯,可使用os變數方式,參考如下代碼(chrome 也可使用類似代碼):
# !/usr/bin/env python# -*- coding:utf-8 -*- from os import environfrom selenium import webdriveriedriver = "C:\Program Files\Internet Explorer\IEDriverServer.exe"environ["webdriver.ie.driver"] = iedriverdriver = webdriver.Ie(iedriver)driver.get("http://www.baidu.com")
多瀏覽器代碼最佳化
除了 Firefox、chrome、IE 以外,可看到 opera 、Safari 等也可支援,這邊就不一一介紹了,如果想要瞭解,可google
可寫一個 .py 來啟動瀏覽器,測試代碼僅需 import,詳見後續測試架構相關章節。
1 # !/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 from os import environ 5 from selenium import webdriver 6 7 ff = webdriver.Firefox() # Firefox 8 ff.maximize_window() # full-window 9 10 chromedriver = "C:\Users\sisi\AppData\Local\Google\Chrome\Application\chromedriver.exe"11 environ["webdriver.chrome.driver"] = chromedriver12 chrome = webdriver.Chrome(chromedriver) # Chrome13 chrome.maximize_window() # full-window14 15 iedriver = "C:\Program Files\Internet Explorer\IEDriverServer.exe"16 environ["webdriver.ie.driver"] = iedriver17 ie = webdriver.Ie(iedriver) # IE18 ie.maximize_window() # full-window19 20 21 ‘‘‘ Your testing code should be here ‘‘‘22 23 TEST_URL = "http://www.baidu.com" 24 25 ff.get(TEST_URL)26 chrome.get(TEST_URL)27 ie.get(TEST_URL)
selenium + python 多瀏覽器測試