美文网首页
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