selenium + python 多瀏覽器測試
支持庫包
在學習 Python + Selenium 正篇之前,先來看下對多瀏覽器模擬的支持。目前selenium包中已包含webdriver,help(webdriver) 查看其下package;也可以查看源文件
啟動 Firefox
firefox是selenium支持得比較成熟的瀏覽器,很多新的特性都會在firefox中體現。但是做頁面的測試,啟動速度比較慢,啟動以后運行速度還是可以接受的。可直接啟動firefox瀏覽器,參見如下代碼:
# !/usr/bin/env python # -*- coding:utf-8 -*- from selenium import webdriver browser = 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 webdriver browser = webdriver.Chrome() browser.get('http://www.baidu.com')
若仍執行出錯,建議查看下chrome版本,可能就是chrome本身的問題,或者參看下方使用os變量的方式。
啟動 IE
啟動 IE 類似 chrome,需要下載 IEdriver,google 下載地址:https://code.google.com/p/selenium/downloads/list; 被禁就下這個吧:http://pan.baidu.com/s/1c0hebio
類似操作將此 exe 放入IE程序包及加入 path;代碼同chrome的,差別只在 browser = webdriver.Ie() ;
若環境變量啟動 webdriver 方式有問題,代碼執行報錯,可使用os變量方式,參考如下代碼(chrome 也可使用類似代碼):
# !/usr/bin/env python # -*- coding:utf-8 -*- from os import environ from selenium import webdriver iedriver = "C:\Program Files\Internet Explorer\IEDriverServer.exe" environ["webdriver.ie.driver"] = iedriver browser = webdriver.Ie(iedriver) browser.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"] = chromedriver 12 chrome = webdriver.Chrome(chromedriver) # Chrome 13 chrome.maximize_window() # full-window 14 15 iedriver = "C:\Program Files\Internet Explorer\IEDriverServer.exe" 16 environ["webdriver.ie.driver"] = iedriver 17 ie = webdriver.Ie(iedriver) # IE 18 ie.maximize_window() # full-window 19 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)