python+selenium自動化軟件測試(第1章):環境搭建,你也可以直接用Anaconda!


1.1 環境搭建

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瀏覽器的,這點非常方便。

當然也支持其他更多瀏覽器,Ie和chrome瀏覽器需要下載驅動包,並添加到環境變量下。

selenium3 是2016年10月份發布的,並且現在默認安裝都是selenium3了,selenium3在selenium2的基礎上做了一些調整,最明顯的區別 就是 selenium2對Firefox的支持最高只支持46及以下版本。selenium3可以支持47以上版本,但是需要下載 geckodriver.exe驅動,並添加到環境變量path下。


接下來的內容以selenium2為主。


************環境組合**************************
初學者最佳環境:python2.7+selenium2+Firefox46以下版本
喜歡嘗新的環境:python3.6+selenium3+Firefox47以上版本
*********************************************
小編的環境:
windows10 64位

python 2.7.12

selenium 2.53.6

firefox 44

 

1.1.2 python安裝
1.小編的電腦操作系統:win10 64位系統
2.下載Python安裝包,選擇2.7版本和3.6版本都可以
(下面的教程,兩個版本會一起講,所以不用擔心版本問題)
官網下載地址:https://www.python.org/

 

 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/ 

1.2 pip降級selenium3.0

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 解決pip使用異常問題

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

 

 (要是看到這里,還沒解決,你這台電腦可以砸了!!!)

1.4 Chrome瀏覽器

前言
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

 

 

1.5 pycharm使用

前言    
在寫腳本之前,先要找個順手的寫腳本工具。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”,運行結果如下

 

1.6 selenium3+firefox環境搭建

有不少小伙伴在安裝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
 
一、安裝python
1.安裝python這個簡單,下載版本后傻瓜式安裝就行了。
2.安裝好之后,看下這個目錄D:\python\Scripts,有沒pip.exe和easy_install.exe(一般都有,沒有的話得重新安裝一次了)
3.將D:\python和D:\python\Scripts,添加到環境變量path下

 

二、檢查pip工具
1.打開cmd,輸入:pip,出現如下圖界面,說明pip環境OK.
>>pip

 

三、安裝selenium3.0
1.cmd輸入:pip install selenium
>>pip install selenium
2.首次安裝要看到100%完成,中途失敗就重新多輸入幾次安裝。

 

四、檢查selenium環境

1.在cmd輸入如下指令檢查環境
>>python
>>from selenium import webdriver
>>driver=webdriver.Firefox()
>>driver.get("https://www.baidu.com")
2.能看到瀏覽器正常啟動,說明環境OK,如果遇到異常就繼續看下面解決方案。

 

五、遇到第一個坑:'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根目錄)
 
六、遇到第二坑: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下。

 

七、遇到第三坑: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版本也是可以的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM