多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

如何使用Python+Selenium下载原图图片-自动化测试

更新时间:2022-03-15 09:42:53 作者:多测师 浏览:207

  最近在用selenium爬取一些数据,其中就要攻破验证码,奈何selenium本身没有直接保存图片的功能,经过一番度娘,对网上的方法不是很赞同,大体上有下面两种方法:

如何使用Python+Selenium下载原图图片-自动化测试

  · 整个页面截图,然后根据获取的Element大小切割图像;

  · 使用鼠标和键盘事件模拟另存操作。

  我认为第一种方法再某些情况下可能会造成图片清晰度丢失,因为有些网站的图片是经过css限制了大小展示在页面上,如果截图的话,势必图像像素变小,清晰度降低。第二种方法可以实现,但是太复杂,中间鼠标、键盘还不能有其他动作,抗干扰能力差。

  经过一番思考,我突然想到之前做的一个需求:在一个单页面应用上下载文件。当时是使用window.open实现的,但是新用户在使用的时候浏览器总会拦截,这样的体验不是很好。因此后来又改良了一下,使用XMLHttpRequest请求,返回blob,然后构造一个a标签,填充base64,完成下载,代码如下:

  var url = 'url';

  var xhr = new XMLHttpRequest();

  xhr.open('GET', url, true);

  xhr.responseType = blob;

  xhr.onload = function() {

  if (this.status === 200) {

  varblob = this.response;

  varreader = new FileReader();

  reader.readAsDataURL(blob);

  reader.onload = function(e) {

  vara = document.createElement('a');

  a.download = 'aaa.jpg';

  a.href = e.target.result;

  $(body).append(a);

  a.click();

  $(a).remove();

  }

  }

  };

  xhr.send();

  以上内容为大家介绍了自动化测试中的如何使用Python+Selenium下载原图图片,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部