1.1.1 selenium簡介
Selenium 是用於測試 Web 應用程序用戶界面 (UI) 的經常使用框架。它是一款用於運行端到端功能測試的超強工具。您可使用多個編程語言編寫測試,而且 Selenium 可以在一個或多個瀏覽器中執行這些測試。
Selenium的發展經歷了三個階段,第一個階段,也就是selenium1的時代,在運行selenium1.0程序以前,咱們得先啓動selenium server端(selenium remote control),咱們簡稱RC。RC主要包括三個部分:launcher,http proxy,selenium core。其中selenium core是被selenium server嵌入到瀏覽器頁面中的,selenium core內部是一堆javascript函數構成,經過調用這些函數來實現對瀏覽器的各類操做。
很顯然比較繁瑣,這並非最佳自動化解決方案,因而後來有了webdriver。
selenium2 的時代合併了webdriver,也就是咱們一般說的selenium,selenium2是默認支持Firefox瀏覽器的,這點很是方便。javascript
固然也支持其餘更多瀏覽器,Ie和chrome瀏覽器須要下載驅動包,並添加到環境變量下。html
selenium3 是2016年10月份發佈的,而且如今默認安裝都是selenium3了,selenium3在selenium2的基礎上作了一些調整,最明顯的區別 就是 selenium2對Firefox的支持最高只支持46及如下版本。selenium3能夠支持47以上版本,可是須要下載 geckodriver.exe驅動,並添加到環境變量path下。java
接下來的內容以selenium2爲主。python
************環境組合**************************
初學者最佳環境:python2.7+selenium2+Firefox46如下版本
喜歡嘗新的環境:python3.6+selenium3+Firefox47以上版本
*********************************************
小編的環境:
windows10 64位web
python 2.7.12chrome
selenium 2.53.6編程
firefox 44windows
1.1.2 python安裝
1.小編的電腦操做系統:win10 64位系統
2.下載Python安裝包,選擇2.7版本和3.6版本均可以
(下面的教程,兩個版本會一塊兒講,因此不用擔憂版本問題)
官網下載地址:https://www.python.org/api
3.Python安裝,雙擊傻瓜式安裝(別安裝在c盤,用英文路徑,不要有空格),安裝時候選中下方紅色框框,若是這一步成功,1.1.3環境變量這一步能夠省略。瀏覽器
1.1.3 環境變量
1.安裝完成後,看下這個目錄D:\python\Scripts,有沒pip.exe和easy_install.exe(通常都有,沒有的話得卸載從新安裝一次了)
2.將D:\python和D:\python\Scripts(注意這兩個是複製本身電腦上的路徑),添加到環境變量path下。
D:\python;D:\python\Scripts;(注意帶上英文的分號)
1.1.4 安裝selenium
1.打開cmd窗口輸入:pip
(若是出現其它提示請檢查上面幾步,確認無誤後出現Did not provide a command,看1.3解決pip異常這篇)
2.cmd輸入指令安裝在線安裝selenium
>pip install selenium==2.53.6
(注意:首次裝必定要看到進度100%完成,若是中途失敗了,從新輸入指令安裝,直到看到100%完成爲止)
1.1.5 驗證selenium
如何才能知道selenium正確安裝好了呢?
1.確保電腦上安裝了Firefox瀏覽器46如下版本
cmd窗口輸入以下指令
>python
>from selenium import webdriver
>webdriver.Firefox()
3.若是能啓動瀏覽器,說明環境安裝OK。
(啓動不成功,說明沒認真看文檔,卸載了從新來一次)
1.1.6 瀏覽器
1.若是你打算用Firefox瀏覽器,那麼千萬別安裝47以上版本(selenium2不兼容47以上)
2.若是你打算用Ie或Chrome瀏覽器,須要先下載瀏覽器驅動,將驅動文件放到python根目錄。
若是有的已經安裝過3.0的版本,啓動firefox時候會報錯,下一章講如何使用pip降級selenium版本
1.1.7 firefox歷史版本
firefox歷年版本的官方鏡像地址:
https://download-installer.cdn.mozilla.net/pub/firefox/releases/
selenium版本安裝後啓動Firefox出現異常:'geckodriver' executable needs to be in PATH
selenium默默的升級到了3.0,然而網上的教程都是基於selenium2的,最近有很多小夥伴踩坑了,決定有必要出這一篇,幫助剛入門的小夥伴們解決好環境問題。
selenium+python環境搭配:
selenium2+firefox46如下版本(無需驅動包,firefox喜歡偷偷升級,你懂的)
selenium3+firefox46以上版本(必須下載驅動:geckodriver.exe,且添加到環境變量)
1.2.1 遇到問題
1.安裝完selenium後,再cmd進入python環境
2.從selenium導入webdriver
3.啓動Firefox瀏覽器
>>python
>>from selenium import webdriver
>>webdriver.Firefox()
而後出現如下異常:'geckodriver' executable needs to be in PATH
1.2.2 解決方案
1.'geckodriver' executable needs to be inPATH,這句話意思就是說,geckodriver.exe的驅動文件須要添加到環境變量下,
selenium2是默認支持firefox的,不須要驅動包,可是,selenium3須要驅動包的支持了,因而就有了上面的問題
2.解決辦法一:繼續使用selenium3,去下載驅動包,而後加到環境變量下(不推薦此辦法,由於解決完這個問題後,後面還會接着有其它問題)
3.解決辦法二:selenium3降級到selenium2(接下來會介紹)
1.2.3 檢查pip環境
1.打開cmd,輸入pip,檢查pip環境是否正常
>>pip
2.若是輸入pip出現提示:Did not provide a command 說明pip環境有問題,臨時解決辦法,輸入pip時候加上後綴pip.exe就能夠了,具體緣由看下一篇解決辦法。
1.2.4 pip查看selenium版本號
1.打開cmd,輸入pip show selenium
>>pip show selenium
2.看紅色區域位置版本號顯示:2.53.0,顯示的就是當前使用的版本號
(若是你這裏顯示的是3.0開頭,就須要接下來步驟了)
1.2.5 pip降級selenium
1.爲了不與以前安裝的selenium版本衝突,先找到selenium3.0目錄:python\Lib\site-packages目錄
把裏面selenium開頭的文件所有刪除就能夠了。python全部的第三方包都在這個目錄下面。
2.打開cmd,輸入pip install selenium==2.53.6(注意是兩個==,中間不要留空格,這裏推薦2.53.6的版本)
>>pip install selenium==2.53.6
1.2.6 升級pip版本
1.在使用pip過程當中若是出現下方紅色區域字樣,就是說pip版本太低了,建議升級
2.如何升級pip呢?看最後一句話:python -m pip install --upgrade pip
3.把上面對應的提示照着敲一遍就能夠了
1.3.1 pip出現異常
有一小部分童鞋在打開cmd輸入pip後出現下面狀況:Didnot provide a command
Did not provide a command?這是什麼鬼?
正常狀況應該是醬紫
1.3.2 解決辦法
1.pip是一個.exe的可執行文件,在cmd輸入pip.exe就能夠解決了。
2.因此在後面的安裝指令中都須要帶上後綴,那麼問題來了,爲何會出現這種狀況,如何完全解決?
1.3.3 配置環境變量
1.主要緣由是環境變量的PATHEXT裏面缺乏.EXE的文件名
2.在PATHEXT下編輯後面加上;.EXE(注意分號是英文的)
3.環境變量配置好了後,關掉cmd,從新打開輸入pip試試(要是這一步還不能解決,繼續往下看)
1.3.4 必殺技
1.找到pip所在的文件目錄打開
2.在文件夾地址欄輸入cmd,回車。
而後在打開的窗口輸入pip(或pip.exe)試試吧
1.3.5 絕殺技能
打開cmd(快捷鍵:win+r),cd到pip所在的目錄,如D:\test\python2\Scripts
>d:
>cd d:/test/python2/Scripts
>pip
(要是看到這裏,還沒解決,你這臺電腦能夠砸了!!!)
前言
selenium2啓動Chrome瀏覽器是須要安裝驅動包的,可是不一樣的Chrome瀏覽器版本號,對應的驅動文件版本號又不同,若是版本號不匹配,是無法啓動起來的。
#############最佳環境搭配#####################
小編環境:selenium2.53.6+Chrome版本V49.0+chromedriverv2.22
(根據小編經驗selenium2搭配Chrome版本40-50比較好,版本過高了會各類奇葩問題的)
###########################################
1.4.1 Chrome遇到問題
1.若是在啓動chrome瀏覽器時候,出現以下界面,沒法打開網址,那麼首先恭喜你,踩到了坑,接下來的內容或許對你有所幫助。
>># coding:utf-8
>>from selenium import webdriver
>>driver = webdriver.Chrome()
>>driver.get("http://www.cnblogs.com/yoyoketang/")
1.4.2 查看版本號
1.查看Chrome版本號,設置>關於,查出來版本號是49.0
2.查看chromedriver.exe版本號,雙擊這個文件就能夠了,查出來版本號是V2.9
3.很顯然是chromedriver的版本號太低了,因而能夠找個更高級的版本:V2.22
1.4.3 chromedriver
1.確保chromedriver.exe文件在path路徑下,這裏我放到Python的根目錄了(python根目錄已配置到path了)
2.確保驅動文件名稱是chromedriver.exe,若是名稱後面帶版本號的,改下文件名稱就行。
3.Chrome版本V49.0+chromedriverv2.22
1.4.4 各版本匹配表
chromedriver版本 支持的Chrome版本
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-53
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32
Chrome瀏覽器的chromedriver版本驅動大全,下載地址:
http://chromedriver.storage.googleapis.com/index.html
IE瀏覽器的IEdriver版本驅動大全,下載地址:
http://selenium-release.storage.googleapis.com/index.html
前言
在寫腳本以前,先要找個順手的寫腳本工具。python是一門解釋性編程語言,因此通常把寫python的工具叫解釋器。寫python腳本的工具不少,小編這裏就不一一列舉的,只要本身用着順手就能夠的,若是你尚未選好解釋器,小編這裏推薦pycharm。
在安裝pycharm後,有一些小夥伴不會破解,這裏小編仍是推薦你們買正版的。固然,若是你不想付費,想破解pycharm,也是很容易的事情,這裏小編列舉幾種破解辦法。前提是你要先下載pycharm安裝包,安裝包能夠去官網http://www.jetbrains.com/pycharm/下載最新版。
1.5.1 pycharm安裝
方法一:
1.在註冊界面,選擇License serve。填入http://idea.lanyus.com/71
2.點擊ok
方法二:
1.註冊界面選擇:Activationcoede
2.打開網址:http://idea.lanyus.com/71,點擊「獲取註冊碼」按鈕
3.複製彈出框的註冊碼
4.copy到註冊界面Activationcoede位置
方法三:
1.安裝pycharm在註冊界面先別動
2.調整電腦系統時間到2036年(20年應該夠用了)。
3.註冊界面選擇申請30天試用
4.退出pycharm
5.電腦時間調整回來。
方法四:
1.安裝pycharm在註冊界面,選擇使用30天
2.打開pycharm菜單裏Help>Register
3.打開網址:http://idea.lanyus.com/71,點擊「獲取註冊碼」按鈕
4.copy到註冊界面Activationcoede位置
接下來開始pycharm之旅吧~
1.5.2 新建工程
1.在d盤新建一個test文件夾
2.打開pycharm左上角File按鈕
3.點NewProject新建一個工程
1.5.3 新建腳本
1.在pycharm左側菜單樹右鍵,新建一個Directory(文件夾)。
2.選擇對應文件夾,在文件夾中新建Python File(腳本文件)。
3.腳本名稱本身命名,後綴.py會自動帶出
1.5.4 開始編程
1.雙擊打開須要編寫的腳本
2.在右側編輯框輸入:print("hello world!")
3.點腳本的title,右擊後選擇Run「test01」,運行結果以下
有很多小夥伴在安裝selenium環境後啓動firefox報錯,由於如今selenium升級到3.0了,跟2.0的版本還有有一點區別的。
(備註:這裏不建議你們用selenium3,坑太多,若是selenium2實在用不了,那就看這篇吧)
安裝環境過程當中主要會遇到三個坑:
1.'geckodriver' executable needs to be in PATH
2.Expected browser binary location, but unable to find binary in default location
3.Unsupported Marionette protocol version 2, required 3
環境準備:
--python3.6
--selenium3.0
--firefox50
1、安裝python
1.安裝python這個簡單,下載版本後傻瓜式安裝就好了。
2.安裝好以後,看下這個目錄D:\python\Scripts,有沒pip.exe和easy_install.exe(通常都有,沒有的話得從新安裝一次了)
3.將D:\python和D:\python\Scripts,添加到環境變量path下
2、檢查pip工具
1.打開cmd,輸入:pip,出現以下圖界面,說明pip環境OK.
>>pip
3、安裝selenium3.0
1.cmd輸入:pip install selenium
>>pip install selenium
2.首次安裝要看到100%完成,中途失敗就從新多輸入幾回安裝。
4、檢查selenium環境
1.在cmd輸入以下指令檢查環境
>>python
>>from selenium import webdriver
>>driver=webdriver.Firefox()
>>driver.get("https://www.baidu.com")
2.能看到瀏覽器正常啓動,說明環境OK,若是遇到異常就繼續看下面解決方案。
5、遇到第一個坑:'geckodriver' executable needs to be in PATH
1.若是啓動瀏覽器過程當中報以下錯誤
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 145, in __init__
self.service.start()
File "D:\test\python3\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
2.這個是由於最新的selenium3.0啓動firefox須要geckodriver.exe這個驅動文件。
3.下載以後,配置到環境變量path下(能夠直接放python根目錄)
6、遇到第二坑:Expected browser binary location, but unable to find binary in default location
1.若是啓動瀏覽器過程當中報以下錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 155, in __init__
keep_alive=True)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 238, in execute
self.error_handler.check_response(response)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 193, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location,
no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line.
2.這個是由於firefox.exe這個文件也須要配置到環境變量path下。
3.這個路徑就是安裝完firefox後,找到firefox.exe這個文件的地址,加到path下。
7、遇到第三坑:Unsupported Marionette protocol version 2, required 3
1.若是啓動瀏覽器過程當中出現以下錯誤
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 155, in __init__
keep_alive=True)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 238, in execute
self.error_handler.check_response(response)
File "D:\test\python3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 193, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unsupported Marionette protocol version 2, required 3
2.這個錯誤緣由是firefox版本太低了,最新的selenium3.0版本支持firefox47以上的版本,升級版本就能夠了
總結:整個環境的配置是python3.6+selenium3.0+firefox47以上版本,固然python用2.7版本也是能夠的。