# 使用Selenium+PhantomJS進(jìn)行整個(gè)網(wǎng)頁(yè)的截圖狡恬,發(fā)現(xiàn)一個(gè)BUG:圖片能夠顯示的最大長(zhǎng)度是有限的既鞠。
具體情況如下:
為了能夠看清楚瀏覽器是否全部加載行瑞,首先使用Chrome作為瀏覽器顯示叹阔,經(jīng)過(guò)測(cè)試截酷,能夠清楚的看到頁(yè)面已經(jīng)全部滑到網(wǎng)頁(yè)最下端蔓同,所有圖片完全加載完畢饶辙,并且用Chrome可以截圖到最下端的頁(yè)面。
由于Chrome無(wú)法截取完整的網(wǎng)頁(yè)(個(gè)人無(wú)法實(shí)現(xiàn)斑粱,不知道是否有途徑能夠?qū)崿F(xiàn)整個(gè)網(wǎng)頁(yè)截圖弃揽,后續(xù)可以查找這方面方法)只能截圖到最底端的一頁(yè),因此實(shí)際截圖使用PhantomJS來(lái)進(jìn)行整個(gè)網(wǎng)頁(yè)的截圖珊佣。但是有個(gè)問(wèn)題蹋宦,就是截圖的圖片一直看不到網(wǎng)頁(yè)最下面的部分。開(kāi)始一直以為是自己的加載沒(méi)有完全到網(wǎng)頁(yè)底端咒锻,直到我把圖片放在PS里面顯示才發(fā)現(xiàn)原來(lái)是圖片是完整的截取了冷冗,但是后面有一部分無(wú)法顯示出來(lái),PNG的格式是顯示的透明惑艇,JPG的格式是顯示的黑色蒿辙。
如圖所示:
從PS中可以看到圖片的完整長(zhǎng)度是36277
經(jīng)過(guò)剪切掉透明部分后,發(fā)現(xiàn)圖片的長(zhǎng)度是32767
為了驗(yàn)證這個(gè)32767是否就是截圖的圖片能夠顯示的最大長(zhǎng)度滨巴,繼續(xù)做了測(cè)試思灌,換了一個(gè)更長(zhǎng)的網(wǎng)頁(yè)來(lái)截圖,發(fā)現(xiàn)最終能夠顯示的部分都是32767恭取,因此推斷泰偿,使用PhantomJS進(jìn)行網(wǎng)頁(yè)截圖是有最大長(zhǎng)度的限制的。而這個(gè)限制就是圖片能夠顯示的部分長(zhǎng)度只有32767像素蜈垮。
經(jīng)過(guò)上網(wǎng)查找原因耗跛,發(fā)現(xiàn)并沒(méi)有這方面的解釋?zhuān)ㄒ豢吹揭粋€(gè)提到這個(gè)問(wèn)題的是說(shuō)這是一個(gè)PhantomJS的BUG,不知所以攒发。
經(jīng)過(guò)百度32767這個(gè)數(shù)字调塌,發(fā)現(xiàn)原來(lái)這是int(32位)也就是整形的最大值,雖然不知道到底代表什么惠猿,但是這個(gè)特殊的值足以說(shuō)明PhantomJS截圖的這個(gè)問(wèn)題應(yīng)該不是一個(gè)BUG羔砾,而是某種特殊的原因所致。