工具:
python-2.7.13
Selenium 2.53.6
Firefox 47.0.1
chrome 72.0.3626.121
chromedriver 2.46
一、Selenium介紹
Selenium 經歷了兩個版本,Selenium 1.0 和 Selenium 2.0,本文僅介紹Selenium2的原理,在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。
Selenium 是什么?一句話,自動化測試工具。它支持各種瀏覽器,包括 Chrome,Safari,Firefox 等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個 Selenium 的插件,那么便可以方便地實現Web界面的測試。
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾經是 Selenium 的競爭對手)。也就是說 Selenium 2 是 Selenium 和 WebDriver 兩個項目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。
中文文檔:http://selenium-python-zh.readthedocs.io/en/latest/index.html
英文文檔:http://selenium-python.readthedocs.io/index.html
(1)Selenium2簡介
Selenium是一個用于Web應用程序測試的工具,支持多平臺、多瀏覽器、多語言去實現自動化測試,Selenium2將瀏覽器原生的API封裝成WebDriver API,可以直接操作瀏覽器頁面里的元素,甚至操作瀏覽器本身(截屏,窗口大小,啟動,關閉,安裝插件,配置證書之類的),所以就像真正的用戶在操作一樣。
Webdriver的一個簡單的架構圖,如下圖所示:
(2)Selenium2原理
webdriver是按照server–client的經典設計模式設計的:
server端就是remote server,可以是任意的瀏覽器:我們的腳本啟動瀏覽器后,該瀏覽器就是remote server,它的職責就是等待client發送請求并做出相應;
client端簡單說來就是我們的測試代碼:測試代碼中的一些行為,比如打開瀏覽器,轉跳到特定的url等操作是以http請求的方式發送給被server端(也就是被測瀏覽器)server接受請求,并執行相應操作,并在response中返回執行狀態、返回值等信息;
簡單介紹一下webdriver的工作原理:
啟動瀏覽器后,selenium-webdriver會將目標瀏覽器綁定到特定的端口,啟動后的瀏覽器則作為webdriver的remote server。
客戶端(也就是測試腳本),借助ComandExecutor發送HTTP請求給sever端(通信協議:The WebDriver Wire Protocol,在HTTP request的body中,會以WebDriver Wire協議規定的JSON格式的字符串來告訴Selenium我們希望瀏覽器接下來做什么事情)。
Sever端需要依賴原生的瀏覽器組件,轉化Web Service的命令為瀏覽器native的調用來完成操作。
注:
the WebDriver Wire Protocol是Selenium自己設計定義的協議,這套協議非常之強大,幾乎可以操作瀏覽器做任何事情,包括打開、關閉、最大化、最小化、元素定位、元素點擊、上傳文件等。
WebDriver Wire協議是通用的,也就是說不管FirefoxDriver還是ChromeDriver,啟動之后都會在某一個端口啟動基于這套協議的Web Service。
(3)Selenium2的安裝
方法1.直接用命令加載selenium
pip install -U selenium
備注:如果下載selenium出錯,可借鑒http://www.lxweimin.com/p/2d48cca6e620
方法2.下載selenium離線包
點擊下載selenium 2.53.6
下載.gz格式后,解壓
在安裝目錄下找到setup.py,打開CMD,輸入python setup.py install
然后,使用 pip show selenium? 檢查是否安裝成功
注:若pip show selenium提示pip出錯;可以把E:\python37\Scripts路徑放到環境變量path中
二、安裝python、pycharm
下載Python2.7.13 (Window平臺安裝包,包格式為:python-XYZ.msi文件)
1、安裝python-2.7
2、配置環境變量path中添加D:\Python27
3、cmd命令校驗python安裝成功
三、瀏覽器和對應驅動下載
(1)使用chrome瀏覽器
2、下載chromedriver驅動? : 下載chromedriver
3、解壓后,將chromedriver.exe復制到C:\Program Files (x86)\Google\Chrome\Application路徑下,并加該路徑配置到環境變量。(或者直接把Chromedriver.exe放到python.exe同目錄下)
備注:Chrome版本與chromedriver版本對照及下載
(2)使用Firefox瀏覽器
2、下載Firefox驅動:下載geckodriver
3、解壓后,將geckodriver.exe直接放到python.exe同目錄下即可
備注:firefox56以下不需要安裝webdriver驅動,firefox57(firefox57及以上版本)需要安裝geckodriver-v0.19.1-win32/64。
注意:
python2兼容的Firefox版本:47及以下
python3兼容的Firefox版本:48及以上
參考資料:
https://www.cnblogs.com/leeboke/p/5014058.html
https://www.cnblogs.com/itstu/p/6877794.html
https://www.cnblogs.com/jxba/p/9022780.html
https://blog.csdn.net/hello_global/article/details/65446446
https://www.cnblogs.com/hellosecretgarden/p/9206648.html
https://blog.csdn.net/casilin/article/details/6077964
https://www.ibm.com/developerworks/cn/web/1209_caimin_seleniumweb/index.html
https://blog.csdn.net/github_37216944/article/details/79053781