定義
Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的自動(dòng)化測(cè)試工具。使用Selenium可以驅(qū)動(dòng)瀏覽器執(zhí)行特定的動(dòng)作,如點(diǎn)擊、下拉等操作,還可以獲取頁面信息,斷言頁面是否如預(yù)期。在工作中我們可以用它來做基于web瀏覽器的UI自動(dòng)化測(cè)試,也可以用它來做一些固定的頁面操作,減少我們重復(fù)的手動(dòng)操作。
準(zhǔn)備工作
在使用selenium庫時(shí)先使用pip命令下載
pip install selenium
selenium庫安裝完后還需要安裝對(duì)應(yīng)得了瀏覽器驅(qū)動(dòng),Selenium支持多種瀏覽器,如Chrome、Firefox等。本篇文章中就以Chrome舉例說明。
python使用selenium自動(dòng)化操作瀏覽器需要chromedriver
驅(qū)動(dòng),但是瀏覽器每隔一段時(shí)間就自動(dòng)更新版本,或者換一臺(tái)電腦運(yùn)行是就會(huì)報(bào)錯(cuò)。出現(xiàn)驅(qū)動(dòng)版本和瀏覽器版本不對(duì)應(yīng)的錯(cuò)誤信息,所以這里我們直接在代碼中自動(dòng)下載與當(dāng)前瀏覽器版本匹配的驅(qū)動(dòng)。代碼如下:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import chromedriver_autoinstaller
import os
def func():
# 獲取當(dāng)前文件所在目錄的絕對(duì)路徑
current_dir = os.path.dirname(os.path.abspath(__file__))
# 設(shè)置存放chromedtriver驅(qū)動(dòng)的目錄
driver_path = os.path.join(current_dir, "driver")
os.makedirs(driver_path, exist_ok=True)
# 自動(dòng)安裝符合當(dāng)前瀏覽器的驅(qū)動(dòng)目錄
chromedriver_autoinstaller.install(path=driver_path)
chromedriver_path = os.path.join(driver_path, chromedriver_autoinstaller.get_chrome_version())
# 創(chuàng)建一個(gè)對(duì)象傳入chromedriver路徑
service = Service(chromedriver_path)
# 啟動(dòng)瀏覽器時(shí)使用傳入的驅(qū)動(dòng)路徑
driver = webdriver.Chrome(service=service)
func()
再上面的代碼中我們直接使用腳本程序去下載我們?yōu)g覽器對(duì)應(yīng)匹配的chromedriver版本,就直接避免了瀏覽器升級(jí)后導(dǎo)致之前下載的驅(qū)動(dòng)版本不對(duì)應(yīng)的問題,避免重復(fù)下載這一步驟。
不過上面的代碼可以優(yōu)化,在下載前去做一個(gè)判斷,因?yàn)槊看芜\(yùn)行前都會(huì)去重復(fù)下載一次,所以需要再運(yùn)行前去找driver_path下面有沒有文件,如果有的話就不用下載,直接使用已有的路徑,如果沒有再去下載就行了,這個(gè)就自行優(yōu)化哈~~~
-
自動(dòng)化測(cè)試
+關(guān)注
關(guān)注
0文章
228瀏覽量
27224 -
代碼
+關(guān)注
關(guān)注
30文章
4886瀏覽量
70245 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86165
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論