美文网首页
python+selenium(seleniumWire)实现网

python+selenium(seleniumWire)实现网

作者: 粥一样温柔 | 来源:发表于2023-10-28 17:25 被阅读0次

用seleniumWire截取网络请求(request),遍历请求url,获取所要对比图片的二进制数据,与本地保持的图片 进行二进制内容对比

from seleniumwire import webdriver

# driverの作成 ChromeDriverManager().install()
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

#右键点击图片,在新的页面打开,可以在地址栏查看到图片地址和图片名称,当前图片名称为:PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
#利用selenium-wire的功能,将接口返回的内容放进itemlist中,遍历url,查找接口中包含图片名称url(如找不到,则报错),
results = [item for item in driver.requests
           if 'PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png' in item.url]
if len(results) == 0:
   raise Exception('没有找到百度图片!')

#打开本地已下载的「baidu.png」图片、判断是否与页面请求中的图片二进制数据是否一致
#前提是本地指定文件目录中是否存在对比图片
#如果不用rb(二进制读取),而是用r(字符读取)可能会对比失败
def test_1():
    with open(r'./baidu.png', 'rb') as localFile:
        assert results[0].response.body == localFile.read()

网页图片和本地二进制对比成功.png

相关文章

网友评论

      本文标题:python+selenium(seleniumWire)实现网

      本文链接:https://www.haomeiwen.com/subject/sflmidtx.html