网站大量收购独家精品文档,联系QQ:2885784924

Python实现网页自动截图的示例讲解.pdfVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python实现⽹页⾃动截图的⽰例讲解 背景介绍 最近在为部门编写⼀个⾃动化测试⼯具,⼯具涉及到⼀个功能,即将⾃动化测试⽣成的html报告截图,作为邮件正⽂,html⽂件上传到web服 务器以链接形式添加到邮件中,最后发送邮件。 任务难点 之前从未接触过页⾯⾃动截图相关的⽅⾯,因此如何⾃动进⾏页⾯截图成为本地调研⽅向。 ⽅案思考 在刚接到这个任务时,并不认同⽬前的⽅案。曾经⼀度认为,将html报告的内容写⼊邮件正⽂,即可通过html的形式发送邮件了。经过尝试后 发现,邮件不⽀持带javascript的html。因此,选择了预览html并⾃动截图的⽅案。 编程语⾔ python 2.7 使⽤⽅案 : selenium + phantomjs ⽅案介绍 实现⾃动预览html并截图有以下⼏个步骤: 1.浏览器打开html 2.对浏览器页⾯进⾏截图 3.将截图保存到指定位置 最初,笔者使⽤了这个实现⽅案: (1).使⽤webbrowser库打开默认浏览器,显⽰url (2).使⽤PIL.ImageGrab库的对屏幕进⾏进⾏截图 到此为⽌,笔者已经获得html的预览截图,⼀切似乎很顺利,但接下来 发现了以下⼏个问题: (1).打开默认浏览器时,默认浏览器是什么,浏览器处于什么状态都不知晓。 (2).浏览器显⽰html,会有⼀个显⽰的打开浏览器,浏览器打开html的动作出现,如果⽤户此时产⽣了其他动作,必定会对之后的截图产⽣影 响。 (3).屏幕截图,将整个屏幕都进⾏截图,截图中除了html页⾯正⽂,同时也包含了浏览器等当前屏幕包含的所有元素,暴漏了⽤户隐私。 (4).如果页⾯较⼤,页⾯会产⽣上下翻页的效果,屏幕截图⽆法应对此种页⾯,截图看到的报告只有⼀部分。 基于上述问题,笔者放弃了这个看起来简单有效的⽅案。从⽽ 对⽅案挖掘了⼀些深层需求: (1).打开浏览器必须隐式调⽤,⽤户⽆法看到⼯具在做什么,从⽽不会通过误操作对⼯具产⽣影响。 (2).截图必须针对浏览器页⾯正⽂,保证⽆其他冗余信息,且截到页⾯全图根据这些需求,笔者经过⼀系列尝试终于发现了selenium + phantomjs。 python selenium :是python对浏览器⾃动化测试框架selenium的扩展,selenium库⽀持了selenium所包含⼤部分功能。 phantomjs:是⼀个⽆界⾯的,可脚本编程的webkit浏览器,python selenium同样提供对phantomjs的⽀持。 接下来⼀切就很容易了: (1).安装python selenium 库,推荐使⽤pip快速安装最新版本 (2).下载phantomjs.exe,将其添加到环境变量 path 中。⽅便起见可以直接放在python的安装⽬录根⽬录下 (3).编写测试代码 简单讲解⼀下代码: fromselenium importwebdriver #从selenium库导⼊webdirver brower=webdriver.PhantomJS() #使⽤webdirver.PhantomJS()⽅法新建⼀个phantomjs的对象,这⾥会使⽤到phantomjs.exe,环境变量path中找不到phantomjs.exe,则会报错 brower.get(url) #使⽤get()⽅法,打开指定页⾯。注意这⾥是phantomjs是⽆界⾯的,所以不会有任何页⾯显⽰ brower.maximize_window() #设置phantomjs浏览器全屏显⽰ brower.save_screenshot(picName) #使⽤save_screenshot将浏览器正⽂部分截图,即使正⽂本分⽆法⼀页显⽰完全,save_screenshot也可以完全截图 brower.close() #关闭phantomjs浏览器,不要忽略了这⼀步,否则你会在任务浏览器中发现许多phantomjs进程 执⾏了上述代码后 ,我们看⼀下截图效果吧 : 以上这篇Python 实现⽹页⾃动截图的⽰例讲解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

文档评论(0)

139****1921 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档