Selenium webdriver 截图 太长截不全的问题

1、环境

selenium webdriver.net 2.46.0.0 + firefox 37.0.1 + win 8.1

2、问题

网页截图--如果网页很长,无法截取全部。如http://sports.sina.com.cn

3、原因分析

1)因为webdriver2.0 是将命令经RemoteWebDriver服务,将浏览器(实现相应的协议)内部命令发送到远程(也可以是本地)浏览器,执行后返回执行数据! 所以就想 是不是 有Response最大值限制?捣鼓半天 无果。。

2)是不是根源出问题了?(浏览器截图的时候)

google一番  发现 webdriver 截图其实是将网页画到一个 “canvas”。

fxdriver.screenshot.grab = function(a) {var b = a.document, c =b.documentElement;if (!c) {throw Error("Page is not loaded yet, try later");

}var d = b.getElementById("fxdriver-screenshot-canvas");null == d && (d = b.createElement("canvas"), d.id = "fxdriver-screenshot-canvas", d.style.display = "none", c.appendChild(d));var e =c.scrollWidth;

b.body&& b.body.scrollWidth > e && (e =b.body.scrollWidth);

c=c.scrollHeight;

b.body&& b.body.scrollHeight > c && (c =b.body.scrollHeight);32767 <= e && (e = 32766);32767 <= c && (c = 32766);

d.width=e;

d.height=c;

try{var f = d.getContext("2d");

}catch(g) {throw Error("Unable to get context - " +g);

}try{

f.drawWindow(a,0, 0, e, c, "rgb(255,255,255)");

} catch(h) {throw Error("Unable to draw window - " +h);

}returnd;

};

然后又联想到之前的8192px,发现大部分浏览器默认 都只可用的8192像素, 超出范围的为空白。但是如果浏览器开启GPU加速的话则没有这个限制。

火狐浏览器配置方式如下:地址栏输入about:config-> 搜索  gfx.font_rendering.directwrite.enabled -> 设置成true 就可以了

这样截图就可以 截全了!!

参考:

http://www.techlivez.com/2011/03/how-to-enabledisable-gpu-acceleration-in-ie-chrome-firefox/

http://segmentfault.com/q/1010000000601812

python 网页截图不全_Selenium webdriver 截图 太长截不全的问题相关推荐

  1. python sql语句换行_python一行sql太长折成多行并且有多个参数的方法

    python一行sql太长折成多行并且有多个参数 sql语句本身就支持多行, 你可以用两种方法断行 注意: 第一种会带入换行符(\n), 第二种只是一行 a='''xxxx本身也可以作为注释使用xxx ...

  2. Echarts中折线图Y轴数据值太长显示不全-解决办法

    正常状态 不全的情况 所有的数据都是从后台取的,也就是说动态变化的,一开始的时候数据量不大不会出现问题,后面y轴的值越来越大的时候就出现了这个显示不全的情况 代码 <div id="c ...

  3. python 浏览器 弹 另存为_selenium webdriver 右键另存为下载文件(结合robot and autoIt)...

    最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为,根本操作不了. 也有在网上看到webdriver ...

  4. Chrome 浏览器如何完美实现滚动截图技巧,在电脑上实现长截屏

    一.前言 我们平时在浏览网页时,想把碰到好的网页内容或者文章截屏保存,但是网页的长度常常会超出屏幕高度,一般的截屏功能只能截取显示在屏幕上的内容,那我们该如何方便快捷截取全部内容?今天就分享一个如何利 ...

  5. 小程序table 表格+小程序table 表格太长显示不全,实现滚动效果

    <view style="margin:15px"><van-row><van-col span="20"><van- ...

  6. bilibili视频列表名字太长显示不全的解决方法

    打开控制台,执行代码 document.querySelectorAll('.part').forEach(item => {item.innerText = item.innerText.sl ...

  7. iphone长截图哪个软件好_亲身体验过13款滚动截屏App,谁才是最好用的iPhone长截屏工具?...

    (☝聪明的人都会星标我☝) 上次我们分享了关于手机录屏怎么只录入手机系统声音而不录入外界声音,有小伙伴留言"苹果手机怎么长截屏?",必须安排一波! 与苹果手机相比,安卓手机想要长截 ...

  8. oracle导入提示字符过长,Oracle 解决【ORA-01704:字符串文字太长】

    错误提示:oracle在toad中执行一段sql语句时,出现错误'ORA-01704:字符串文字太长'.如下图: 原因:一般为包含有对CLOB字段的数据操作.如果CLOB字段的内容非常大的时候,会导致 ...

  9. python如何截长图_selenium定时爬取长截图

    Python + selenium + windows定时任务 实现定时每日定时长截图 首先下载一个chromdriver插件(插件下载地址:http://chromedriver.storage.g ...

  10. Python将网页转化为PDF(python网页自动长截图)

    初次实践:python网页自动截图 步骤如下: (1) 安装python selenium 库,推荐使用pip快速安装最新版本 pip install selenium (2) 检查Chrome浏览器 ...

最新文章

  1. Windows 7 操作系统核心文件
  2. 《javascript语言精粹》读书笔记(一)
  3. 2016-04-28
  4. 【错误记录】前台进程报错 ( Bad notification for startForeground invalid channel for service notification )
  5. spring的HibernateDaoSupport以及HibernateTemplate和jdbcTemplate的选择问题
  6. jq添加新节点赋予class属性并获取该对象
  7. linux lvm管理实例,Linux系统管理之LVM案例
  8. git按照tag拉取代码_Git实操小课堂
  9. Https的握手协议
  10. java date linux,Java中Date,SimpleDateFormat
  11. Asp.Net页面传值的方法简单总结【原创】
  12. maven deploy上传私服出错
  13. Flask笔记-使用Cookie及简单加密判断是否为登录用户
  14. 图像分割matlab阈值自动计算,图像分割的阈值算法matlab实现.doc
  15. python 移动平均线_如何使用NumPy计算移动平均线?
  16. C++ 入门5 ---- 类和动态内存分配(一)
  17. 校园网络视频监控系统方案
  18. Linux网络编程必学的TCP/IP协议——图解分层(通俗易懂)【建议新手收藏】
  19. 4 实型变量,字符型数据(常量和变量),字符串常量2021-01-25
  20. tumblr android app,6 Best Tumblr Apps for Android and iOS (2018)

热门文章

  1. 关于Ajax回调函数返回值判断的问题
  2. ajax/ 回调函数(回调地狱)
  3. 天津联通移动电信DNS
  4. linux cpu使用率500%,Linux:CPU使用率100%排查方法
  5. python刷今日头条访问量_python爬虫实战:刷某博客站点的访问量(转)
  6. NOIP2016排名(919~1419)
  7. edittext 内容长度
  8. 漏洞分析检测的主要技术
  9. wegame显示密保服务器,wegame英雄联盟设置 | 手游网游页游攻略大全
  10. Checklist设计编写规范及模板