天天看點

Linux配置Selenium+Chrome+Java實作自動化測試

Linux配置Selenium+Chrome+Java實作自動化測試

H31、安裝chrome

sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
           
如果上面運作
sudo dpkg -i google-chrome*.deb指令之後報錯,使用如下指令修複一下:
sudo apt-get install -f,之後再次運作sudo dpkg -i google-chrome*.deb指令就可以了
安裝後确認/usr/bin目錄下是否有google-chrome檔案
           

也可先下載下傳安裝包到本地,在安裝形式不限

H32、安裝chromedriver

建議安裝最新版本的chromedriver,下載下傳頁面:

http://chromedriver.storage.googleapis.com/index.html

在這個頁面裡列出了chromedriver的各個版本,我的chrome浏覽器版本是v62,是以我選擇的版本(2.34),

具體對應關系參看我上一篇博文:http://www.cnblogs.com/longronglang/p/8078759.html

使用指令行安裝:

unzip chromedriver_linux64.zip
chmod +x chromedriver
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
           
安裝後确認/usr/bin目錄下是否有chromedriver檔案

由于時效性,在安裝時應當先去網站檢視最新版本,然後替換指令行中的2.34版本資訊
           

H33、字元界面運作

如果想要在字元界面使用Chrome進行測試,需要使用工具Xvfb.

X Virtual Framebuffer(Xvfb)虛拟幀緩沖器,簡單來說它可以直接處理 Window的圖形化功能,并且不會輸出到螢幕上,這就擺脫了對可視視窗的依賴

sudo apt-get -y install xvfb gtk2-engines-pixbuf
sudo apt-get -y install xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable
# 截圖功能,可選
sudo apt-get -y install imagemagick x11-apps
Xvfb -ac :99 -screen 0 1280x1024x16 & export DISPLAY=:99
           

這項我感覺沒啥用,網上看來的,但是安裝完運作也沒啥效果

H34、demo示範

package demo;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class demo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
//    WebDriver driver = new FirefoxDriver();//火狐浏覽器為注釋部分
        WebDriver driver=new ChromeDriver();//谷歌浏覽器
        driver.get("http://fanyi.baidu.com/");
        driver.manage().window().maximize();
        System.out.println(driver.getTitle());
        driver.navigate().refresh();
        // driver.close();//關閉驅動
    }

}