Selenium(一):原理與安裝、簡單的使用


1. selenium原理

1.1 selenium介紹

Selenium是一個Web應用的自動化框架。

通過它,我們可以寫出自動化程序,像人一樣在瀏覽器里操作web界面。 比如點擊界面按鈕,在文本框中輸入文字 等操作。

而且還能從web界面獲取信息。 比如獲取12306票務信息,招聘網站職位信息,財經網站股票價格信息 等等,然后用程序進行分析處理。

Selenium 的自動化原理是這樣的:

1.2 selenium客戶端庫

我們寫的自動化程序需要使用客戶端庫。

我們程序的自動化請求都是通過這個庫里面的編程接口發送給瀏覽器。

比如,我們要模擬用戶點擊界面按鈕, 自動化程序里面就應該調用客戶端庫相應的函數,就會發送點擊元素的請求給下方的瀏覽器驅動。然后,瀏覽器驅動再轉發這個請求給瀏覽器。

這個自動化程序發送給瀏覽器驅動的請求是HTTP請求。

客戶端庫從哪里來的?是Selenium組織提供的。

Selenium組織提供了多種 編程語言的Selenium客戶端庫,包括 java,python,js,ruby等,方便不同編程語言的開發者使用。

我們只需要安裝好客戶端庫,調用這些庫,就可以發出自動化請求給瀏覽器咯。

1.3 瀏覽器驅動

瀏覽器驅動也是一個獨立的程序,是由瀏覽器廠商提供的,不同的瀏覽器需要不同的瀏覽器驅動。 比如Chrome瀏覽器和火狐瀏覽器有各自不同的驅動程序。

瀏覽器驅動接收到我們的自動化程序發送的界面操作請求后,會轉發請求給瀏覽器,讓瀏覽器去執行對應的自動化操作。

瀏覽器執行完操作后,會將自動化的結果返回給瀏覽器驅動,瀏覽器驅動再通過HTTP響應的消息返回給我們的自動化程序的客戶端庫。

自動化程序的客戶端庫接收到響應后,將結果轉化為數據對象返回給我們的代碼。

我們的程序就可以知道這次自動化操作的結果如何了。

1.4 總結

  1. 自動化程序調用Selenium客戶端庫函數(比如點擊按鈕元素)。
  2. 客戶端庫會發送Selenium命令給瀏覽器的驅動程序。
  3. 瀏覽器驅動程序接收到命令后,驅動瀏覽器去執行命令。
  4. 瀏覽器執行命令。
  5. 瀏覽器驅動程序獲取命令執行的結果,返回給我們自動化程序。
  6. 自動化程序對返回結果進行處理。

2. 安裝selenium環境

Selenium環境的安裝主要就是安裝兩樣東西:客戶端庫和瀏覽器驅動。

2.1 安裝客戶端庫

不同的編程語言選擇不同的Selenium客戶端庫。 

對應我們Python語言來說,Selenium客戶端庫的安裝非常簡單,用pip命令即可。

打開命令行程序,運行如下命令

pip install selenium

2.2 安裝瀏覽器驅動

瀏覽器驅動是和瀏覽器對應的。不同的瀏覽器需要選擇不同的瀏覽器驅動。

目前主流的瀏覽器中,Chrome 瀏覽器對Selenium自動化的支持更加成熟一些。

我們就以Chrome瀏覽器為例。

建議安裝最新版本的Chrome瀏覽器,點擊這里下載

訪問Chrome瀏覽器的驅動下載頁面,點擊這里下載

注意瀏覽器驅動必須要和瀏覽器版本匹配,下圖紅圈里面的版本號就是和瀏覽器版本號對應的 。

 

比如:當前Chrome瀏覽器版本是78, 就需要下載78開頭的目錄里面的驅動程序 。

打開目錄,里面有3個zip包,分別對應Linux、Mac、Windows平台。

如果我們是Windows平台的電腦,就下載 chromedriver_win32.zip

這是個zip包,下載下來之后,解壓里面的程序文件 chromedriver.exe 到某個目錄下面,注意這個目錄的路徑最好是沒有中文名和空格的。

比如,解壓到E:\webdrivers目錄下面。

也就是保證我們的Chrome瀏覽器驅動路徑為E:\webdrivers\chromedriver.exe

基於selenium的web自動化環境搭建就是這些,比較簡單。 

3. 簡單的使用 

3.1 打開瀏覽器,進入指定網站

from selenium import webdriver

# 創建 WebDriver 對象,指明使用chrome瀏覽器驅動
wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.exe')

# 調用WebDriver 對象的get方法 可以讓瀏覽器打開指定網址
wd.get('https://www.baidu.com')

注意,等號右邊返回的是WebDriver類型的對象,我們可以通過這個對象來操控瀏覽器,比如打開網址、選擇界面元素等。

而下面這行代碼,就是使用WebDriver的get方法打開網址百度 

wd.get('https://www.baidu.com')

執行上面這行代碼時,自動化程序就發起了打開百度網址的請求消息,通過瀏覽器驅動,給Chrome瀏覽器。

Chome瀏覽器接收到該請求后,就會打開百度網址,通過瀏覽器驅動,告訴自動化程序打開成功。

3.2 關閉瀏覽器

執行完自動化代碼,如果想關閉瀏覽器窗口可以調用WebDriver對象的 quit 方法,像這樣 wd.quit() 。

3.3 瀏覽器驅動目錄加入環境變量Path 

前面,我們的代碼創建 WebDriver對象時,需要指定瀏覽器驅動路徑,比如 

wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.exe')

如果,我們把瀏覽器驅動所在目錄加入環境變量 Path,再寫代碼時,就可以無需指定瀏覽器驅動路徑了,像下面這樣。

wd = webdriver.Chrome()

因為,Selenium會自動在環境變量Path指定的那些目錄里查找名為chromedriver.exe的文件。

一定要注意的是, 加入環境變量 Path 的,不是瀏覽器驅動全路徑,比如E:\webdrivers\chromedriver.exe

而是瀏覽器驅動所在目錄,比如E:\webdrivers\


免責聲明!

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



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