3 啟動瀏覽器

我們已經創建了Selenium maven工程,下去開始真正進入到WebDriver的實戰中。

既然WebDriver是用于Web的UI自動化測試,那么測試Web的第一步就是啟動瀏覽器。那WebDriver都支持哪些瀏覽器呢?

WebDriver 支持哪些瀏覽器

WebDriver 支持主流的瀏覽器包括IE,Chrome,Firefox,Safari等等,微軟Win 10 新推出的Edge瀏覽器,Selenium 2.47.1+版本開始也得到支持。

我們在“Selenium 家族介紹“ 一節中已經知道WebDriver的工作原理,既每個瀏覽器都有對應的一個Driver,通過以之對應的Driver來驅動瀏覽器,那我們在啟動瀏覽器前,得先完成瀏覽器的配置,下載各個瀏覽器對應的Driver文件。

IE 瀏覽器

支持版本:

  • Selenium 2.0 支持IE 7~11
  • Selenium 3.0 支持IE 9+

IEDriverServer下載和配置

IEDriverServer下載:

我們可以從 http://selenium-release.storage.googleapis.com/index.html 下載,如果該地址打不開,可以用淘寶的鏡像地址:https://npm.taobao.org/mirrors/selenium/。

IEDriverServer 下載時得注意,你用的是什么版本的Selenium 就在對應版本里面找IEDriverServer。
例如我們現在用的是Selenium 3.5.0版本,那么我們就到3.5文件里面去下載對應的IEDriverServer,下載時還得根據自己的系統和版本。例如我是win 64位,那么我可以下載IEDriverServer_x64_3.5.0.zip,下載完成后解壓得到最終的IEDriverServer.exe文件。

下載完成后的,我們回到新建好的Senlenium maven項目工程(新建過程:http://www.lxweimin.com/p/6ca7bbcdf2dd ),在項目名中我們可以新建個名為drivers的文件夾,再把已經下載好的IEDriverServer.exe文件復制到該新建的drivers文件夾中,最終工程目錄結果如下:

工程結構

IE的配置

配置IE,打開IE選項,打開安全標簽,如下圖,設置紅框部分,設置每個區域的 “啟動保護模式”,要嘛都勾選,要嘛都不勾選。

IE 設置

啟動IE瀏覽器

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

/**
 * Created by 米陽 on 7/9/2017.
 */
public class OpenBrowserTest {

    public static void main(String args[]) {
        openIE();
    }

    private static void openIE() {
//        設置系統變量,并設置iedriver的路徑為系統屬性值
        System.setProperty("webdriver.ie.driver", ".\\drivers\\IEDriverServer.exe");
//        實例化 InternetExplorerDriver
        WebDriver driver = new InternetExplorerDriver();
    }

}

Chrome 瀏覽器

ChromeDriver下載地址:

chromedriver下載時也需要下載到匹配的版本,特別是chrome瀏覽器和chromedriver的版本需要匹配。那如何查看自己的chrome需要下載哪個版本的chromedriver呢?通常使用最新版的chrome和最新版的chromedriver便可,但如果你并非都是最新版的,那么可以到:https://sites.google.com/a/chromium.org/chromedriver/downloads這里面去查看到你的哪個版本的chromedriver支持你所使用的chrome版本。

當確定好符合你使用的chromedriver版本時,可以到http://chromedriver.storage.googleapis.com/index.html,國內用戶也可以到淘寶npm鏡像(http://npm.taobao.org/mirrors/chromedriver)去下載對應版本的chromedriver版本。最后將下載下來的chromedriver解壓后放于跟IEDriverServer.exe 相同位置,如下圖:

chromedriver.png

啟動Chrome瀏覽器

在剛新建的OpenBrowser_Test類中添加如下方法:

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

/**
 * Created by 米陽 on 7/9/2017.
 */
public class OpenBrowserTest {

    public static void main(String args[]) {
        openChrome();
    }

    private static void openChrome() {
//        設置系統變量,并設置chromedriver的路徑為系統屬性值
        System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe");
//        實例化ChromeDriver
        WebDriver driver = new ChromeDriver();
    }

}

Firefox 瀏覽器

火狐瀏覽器得分兩種情況處理。

  1. 當火狐的版本<=47時,我們不需要額外的設置。當時如果安裝時沒有使用默認安裝路徑,那么和使用默認安裝路徑在代碼處理上會有點不同:
  • 默認安裝路徑,我們可以直接實例化一個FirefoxDriver,便可:
    public static void main(String args[]) {
        openFirefoxDef();
    }
    
    private static void openFirefoxDef(){
 //       實例化 FirefoxDriver, 啟動Firefox
        WebDriver driver = new FirefoxDriver();
    }
  • 如果火狐不是默認安裝路徑,你需要制定火狐按路徑:
    public static void main(String args[]) {
        openFireFoxTest();
    }
    public void openFireFoxTest(){
//        指定firefox 安裝路徑
        System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
//        啟動firefox瀏覽器
        WebDriver driver = new FirefoxDriver();
    }
  1. 當火狐版本V48+時,那么想啟動火狐瀏覽器,我們得去下載火狐對應的geckodriver。下載地址:https://github.com/mozilla/geckodriver/releases,基本下載最新版便可。那么我看下這時我們如何啟動Firefox:
    public static void main(String args[]) {
        openFirefoxByGeck();
    }
    private static void openFirefoxByGeck() {
//        設置系統變量,并設置 geckodriver 的路徑為系統屬性值
        System.setProperty("webdriver.gecko.driver", ".\\drivers\\geckodriver.exe");
//        實例化 FirefoxDriver
        WebDriver driver = new FirefoxDriver();
    }

Edge瀏覽器

win 10 系統微軟推出了全新的Edge瀏覽器,同樣上面提到Selenium 2.47.1版本開始開始支持這一瀏覽器,但是你的Win 10的build版本必須大于或者等于10240版本也就是說你的edge瀏覽器版本需要是10240版本以上,那如何去查看自己的系統版本,很簡單打開控制臺,輸入ver,顯示如下的。

image.png

通常edge版本跟系統版本是一致的,但是如果你真的想查看edge版本,只需要打開edge的設置,便可看到:

image.png

另外值得注意的是從微軟官方 https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/webdriver-commands/ 中我們可以得知,如果你想使用XPath Selector(后面會講這種重要的頁面定位方式)那么你的build版本需要大于等于10586。

Paste_Image.png

如果你的系統滿足要求,那恭喜你可以繼續往下。

準備

Edge跟IE類似,同樣我們需要去下載對應的driver,下載地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ ,需要注意的是根據你上面所查到的系統版本去下載對應的MicrosoftWebDriver,不然會報錯。而且下載有兩種一種是MicrosoftWebDriver.exe文件,一種是MicrosoftWebDriver.msi文件,如果你下載到的是.msi文件,那就雙擊運行按正常軟件安裝便可。如果你下載到的是MicrosoftWebDriver.exe文件,那就直接剪切放進項目的drivers文件夾中:

啟動Edge瀏覽器

我們還是直接在OpenBrowser_Test類中添加如下方法:

    public static void main(String args[]) {
        openEdge();
    }

    private static void openEdge() {
//        指定MicrosoftWebDriver路徑
        System.setProperty("webdriver.edge.driver", ".\\drivers\\MicrosoftWebDriver.exe");
//        啟動 Edge瀏覽器
        WebDriver driver = new EdgeDriver();
    }

PhantomJS 瀏覽器

phantomjs比較特殊的一個瀏覽器,它實現了一個無界面的webkit瀏覽器。雖然沒有界面,但dom渲染、js運行、網絡訪問、canvas/svg繪制等功能都很完備,在頁面抓取、頁面輸出、自動化測試等方面有廣泛的應用。但目前已經處于不再維護狀態。為啥?我們后面會講到它的替代品。

最后一個重要補充:
當我們new一個XXXDriver()時,我們啟動的是一個全新的瀏覽器(沒有預裝插件,沒有緩存,沒有cookies等等)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,732評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,214評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,781評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,588評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,315評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,699評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,698評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,882評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,441評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,189評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,388評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,933評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,613評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,023評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,310評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,112評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,334評論 2 377

推薦閱讀更多精彩內容