Selenium+PhantomJS网页截图BUG

# 使用Selenium+PhantomJS进行整个网页的截图,发现一个BUG:图片能够显示的最大长度是有限的。

具体情况如下:


为了能够看清楚浏览器是否全部加载,首先使用Chrome作为浏览器显示,经过测试,能够清楚的看到页面已经全部滑到网页最下端,所有图片完全加载完毕,并且用Chrome可以截图到最下端的页面。

由于Chrome无法截取完整的网页(个人无法实现,不知道是否有途径能够实现整个网页截图,后续可以查找这方面方法)只能截图到最底端的一页,因此实际截图使用PhantomJS来进行整个网页的截图。但是有个问题,就是截图的图片一直看不到网页最下面的部分。开始一直以为是自己的加载没有完全到网页底端,直到我把图片放在PS里面显示才发现原来是图片是完整的截取了,但是后面有一部分无法显示出来,PNG的格式是显示的透明,JPG的格式是显示的黑色。

如图所示:


Selenium+PhantomJS网页截图BUG_第1张图片
图片末尾显示的透明部分

从PS中可以看到图片的完整长度是36277


Selenium+PhantomJS网页截图BUG_第2张图片
图片长度

经过剪切掉透明部分后,发现图片的长度是32767


Selenium+PhantomJS网页截图BUG_第3张图片
剪切掉透明部分后的长度

为了验证这个32767是否就是截图的图片能够显示的最大长度,继续做了测试,换了一个更长的网页来截图,发现最终能够显示的部分都是32767,因此推断,使用PhantomJS进行网页截图是有最大长度的限制的。而这个限制就是图片能够显示的部分长度只有32767像素。

经过上网查找原因,发现并没有这方面的解释,唯一看到一个提到这个问题的是说这是一个PhantomJS的BUG,不知所以。

经过百度32767这个数字,发现原来这是int(32位)也就是整形的最大值,虽然不知道到底代表什么,但是这个特殊的值足以说明PhantomJS截图的这个问题应该不是一个BUG,而是某种特殊的原因所致。

你可能感兴趣的:(Selenium+PhantomJS网页截图BUG)