2016-10-29

[自動化網頁測試] 於Ubuntu使用Selenium整合Headless Firefox

這裡介紹Geb(瀏覽器自動化browser automation)的解決方案Selenium + Headless Firefox。

[環境與工具]

  • Ubuntu Server 14.04 LTS
  • JDK 1.8.0_91(注意!! jdk 1.7 Selenium 會有問題)
  • Ubuntu沒有GUI,需要使用xvfb(x window virtual framebuffer)作為headless browsergraphic render
  • Web Driver
    • firefox webdrivergeckodriver-v0.10.0
    • google chrome webdriverchromedriver_win32 / linux64
    • 請自行下載並注意執行環境平台
[xvfb & firefox]
  • 安裝指令
    • #sudo apt-get install firefox xvfb
  • 安裝過程如果缺少字型
    • #sudo apt-get update
    • #sudo apt-get install -y xorg xvfb dbus-x11 xfonts-100dpi xfonts-75dpi xfonts-cyrillic
  • 啟動xvfbgraphic render,頻道0~99任選,1280x960x16為模擬視窗大小,目前使用此值運作正常
    • #Xvfb :99 -ac -screen 0 1280x960x16
  • 擷取xvfb畫面
    • 安裝需要套件:#sudo apt-get install imagemagick
    • #xwd -root -display :99 | convert xwd:- capture.png
[Selenium]
l   設定web driver的存取權限
n   #chmod +x geckodriver
l   執行指令,這裡僅用Runnable作為範例
n   使用EclipseexportRunnable Jar,放至Ubuntu
n   #DISPLAY=:99 java –jar testCreateVPC.jar ${webdriver name} ${webdriver path} 

[安裝chrome,非必須]
  • 安裝步驟
  • 如安裝有錯誤訊息,請用以下指令強制安裝
    • # sudo apt-get -f install
  • 執行指令
    • # google-chrome ${url}
  • 在ubuntu下不能直接用 root 進行操作,可加上類似參數解決
    • #DISPLAY=:99 google-chrome http://{IP}  --user-data-dir '/home/ubuntu/tmp'

2 則留言:

  1. 不好意思,可以請問chromedirver和google chrome 還有Selenium版本的新舊上會造成程式碼run不起來嗎

    回覆刪除
  2. 有可能,我都用最新版本的

    回覆刪除