ระบบควบคุมในการกระจายและเข้าถึงข่าวสาร การประกาศ

วันอาทิตย์ที่ 14 สิงหาคม พ.ศ. 2559

ถ่ายภาพหน้าจอด้วย selenium โดยใช้ Firefox webdriver

ไม่มีความคิดเห็น :
   ก่อนหน้านี้เราทำการรับภาพ preview ของหน้าเว็บโดยการใช้ phantomjs มาทำเป็น webdriver ผลที่ได้ก็ทำให้ได้รูปภาพที่ต้องการ  แต่ในบางกรณีรูปภาพที่ได้มีปัญหา  คือในกรณีที่หน้าเว็บเป็น plugin pdf ผลที่ได้คือจะมองไม่เห็นตัว pdf viewer ดังรูปด้านล่างนี้  ส่วนที่เป็นพื้นที่โล่งตรงกลางรูปภาพคือส่วน pdf viewer ที่มองไม่เห็น



   และในกรณีใช้งาน video plugin ในหน้าเว็บจะพบปัญหา missing flash plugin ทำให้ตัว video player ไม่ปรากฎขึ้นมาให้เราเห็นในรูปภาพ ดังรูปด้านล่างนี้

  วิธีแก้ไขคือใช้ Firefox webdriver ดังตัวอย่างด้านล่างนี้

#!/usr/bin/env python

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

# now Firefox will run in a virtual display. 
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()

จากตัวอย่างด้านบน ให้เราติดตั้ง library pyvirtualdisplay ก่อนซึ่ง library ตัวนี้จะใช้ไม่ให้มีการเปิด web browser ขึ้นมาเมื่อ selenium ทำงาน

ติดตั้งด้วยคำสั่ง ดังนี้
$ sudo apt-get install xvfb python-pip
$ sudo pip install pyvirtualdisplay 
 

ไม่มีความคิดเห็น :

แสดงความคิดเห็น