用seleniumWire截取網(wǎng)絡(luò)請(qǐng)求(request)绸吸,遍歷請(qǐng)求url诺舔,獲取所要對(duì)比圖片的二進(jìn)制數(shù)據(jù)玉锌,與本地保持的圖片 進(jìn)行二進(jìn)制內(nèi)容對(duì)比
from seleniumwire import webdriver
# driverの作成 ChromeDriverManager().install()
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
#右鍵點(diǎn)擊圖片技羔,在新的頁(yè)面打開(kāi),可以在地址欄查看到圖片地址和圖片名稱翔横,當(dāng)前圖片名稱為:PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
#利用selenium-wire的功能,將接口返回的內(nèi)容放進(jìn)itemlist中梗搅,遍歷url禾唁,查找接口中包含圖片名稱url(如找不到,則報(bào)錯(cuò))无切,
results = [item for item in driver.requests
if 'PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png' in item.url]
if len(results) == 0:
raise Exception('沒(méi)有找到百度圖片荡短!')
#打開(kāi)本地已下載的「baidu.png」圖片、判斷是否與頁(yè)面請(qǐng)求中的圖片二進(jìn)制數(shù)據(jù)是否一致
#前提是本地指定文件目錄中是否存在對(duì)比圖片
#如果不用rb(二進(jìn)制讀榷呒)掘托,而是用r(字符讀取)可能會(huì)對(duì)比失敗
def test_1():
with open(r'./baidu.png', 'rb') as localFile:
assert results[0].response.body == localFile.read()
網(wǎng)頁(yè)圖片和本地二進(jìn)制對(duì)比成功.png