1. 為什麼是 Selenium
最初的自動化測試主要用于 Web 端,而 Selenium 是使用最為廣泛的 Web 自動化測試架構之一
Selenium 可以完全模拟使用者對主流浏覽器進行操作,包含:Chrome、FireFox、Safari 等;目前 Selenum 穩定版本為:Selenium 3.x,使用 Python 可以非常友善地編寫腳本,實作對浏覽器的操作
Selenium 包含:Selenium WebDriver、Selenium IDE、Selenium Grid
其中,Selenium WebDriver 可以使用各種語言,包含 Python 驅動浏覽器進行自動化操作
Selenium IDE 是一款浏覽器插件,可以通過腳本錄制完成簡單的自動化功能,支援 Chrome 和 Firefox 浏覽器
Selenium Grid 用于管理對接大量的 Web 浏覽器及移動端,包含 Android、iOS 的自動化測試操作,提升測試的效率,一般用于對接 Appium 完成多裝置管理平台
2. 環境準備
首先要搭建 Python3 環境,具體可以參考下面這個連結:
https://www.runoob.com/python/python-install.html
接着使用 Python3 自帶的 pip3 指令安裝 Selenium
# 安裝最新版本的 selenium
pip3 install -U selenium
接着,檢視 Chrome 浏覽器的版本号,下載下傳 ChromeDriver 對應的版本
https://npm.taobao.org/mirrors/chromedriver/

需要注意的是,為了保證 Selenium 能夠正常驅動 Chrome 浏覽器,需確定 Chrome 版本和 ChromeDriver 版本一緻
最後,将 ChromeDriver 配置到環境變量中去,如果是 Win 系統,Path 變量中加入 ChromeDriver 的完整路徑;如果是 Mac OSX,将 ChromeDriver 放在 /usr/local/bin 目錄下即可
3. 試一試
以 Python + Selenium 來實作一個簡單功能
首先,需要導入 selenium 的依賴包,并初始化 Chrome 驅動類
# 導入依賴
from selenium import webdriver
# 執行個體化驅動
driver = webdriver.Chrome()
接着,我們調用 API 中的 get() 方法打開一個網站
# 打開網站
driver.get('http://www.baidu.com')
打開網站之後,我們按 F12 打開開發者調試工具,定位到搜入框、搜尋按鈕兩個元素的 id,分别為:kw、su
Selenium 可以先通過 id 、class、xpath 等屬性查找到元素控件,然後對控件元素進行點選、滑動、輸入等一系列操作
我們拿到輸入框元素,模拟輸入内容,然後模拟點選搜尋按鈕,執行一次搜尋操作
# 輸入框元素
input_element = driver.find_element_by_id('kw')
# 模拟輸入内容
input_element.send_keys('Python')
# 搜尋按鈕元素
search_btn_element = driver.find_element_by_id('su')
# 執行點選操作
search_btn_element.click()