selenium 筆記 --- 打開(kāi)瀏覽器【Java】

一敦冬、Selenium WebDriver 依賴(lài)注入 【Maven】

#注意版本可以根據(jù)自己需求定
<dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.5.3</version>     
</dependency>

#建議版本統(tǒng)一
<dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.5.3</version>
</dependency>

二庶喜、selenium打開(kāi)各瀏覽器(chrome 秸架、 firefox 揍庄、 ie 、 edge)

1.1咕宿、IEDriverServer下載與配置

我們可以從 http://selenium-release.storage.googleapis.com/index.html 下載币绩,如果該地址打不開(kāi)蜡秽,可以用淘寶的鏡像地址:https://npm.taobao.org/mirrors/selenium/

IEDriverServer 下載時(shí)得注意缆镣,你用的是什么版本的Selenium 就在對(duì)應(yīng)版本里面找IEDriverServer芽突。

例如我們現(xiàn)在用的是Selenium 3.5.0版本,那么我們就到3.5文件里面去下載對(duì)應(yīng)的IEDriverServer董瞻,下載時(shí)還得根據(jù)自己的系統(tǒng)和版本寞蚌。例如我是win 64位,那么我可以下載IEDriverServer_x64_3.5.0.zip钠糊,下載完成后解壓得到最終的IEDriverServer.exe文件挟秤。

下載完成后的,我們回到新建好的Senlenium maven項(xiàng)目工程(新建過(guò)程:http://www.reibang.com/p/6ca7bbcdf2dd )抄伍,在項(xiàng)目名中我們可以新建個(gè)名為drivers的文件夾艘刚,再把已經(jīng)下載好的IEDriverServer.exe文件復(fù)制到該新建的drivers文件夾中,最終工程目錄結(jié)果如下:

image.png

1.2截珍、 IE的配置

配置IE攀甚,打開(kāi)IE選項(xiàng),打開(kāi)安全標(biāo)簽岗喉,如下圖秋度,設(shè)置紅框部分,設(shè)置每個(gè)區(qū)域的 “啟動(dòng)保護(hù)模式”钱床,要嘛都勾選荚斯,要嘛都不勾選。

image.png

1.3查牌、 啟動(dòng)IE瀏覽器

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


public class OpenBrowserTest {

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

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

}



2.1事期、Chrome 瀏覽器

ChromeDriver下載地址:

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

當(dāng)確定好符合你使用的chromedriver版本時(shí),可以到http://chromedriver.storage.googleapis.com/index.html浊洞,國(guó)內(nèi)用戶(hù)也可以到淘寶npm鏡像(http://npm.taobao.org/mirrors/chromedriver)去下載對(duì)應(yīng)版本的chromedriver版本牵敷。最后將下載下來(lái)的chromedriver解壓后放于跟IEDriverServer.exe 相同位置,如下圖:

image.png

2.2法希、 啟動(dòng)Chrome瀏覽器

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

public class OpenBrowserTest {

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

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

}

3.1枷餐、Firefox 瀏覽器

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

1、 當(dāng)火狐的版本<=47時(shí)苫亦,我們不需要額外的設(shè)置毛肋。當(dāng)時(shí)如果安裝時(shí)沒(méi)有使用默認(rèn)安裝路徑怨咪,那么和使用默認(rèn)安裝路徑在代碼處理上會(huì)有點(diǎn)不同:
  • 默認(rèn)安裝路徑,我們可以直接實(shí)例化一個(gè)FirefoxDriver润匙,便可:
    public static void main(String args[]) {
        openFirefoxDef();
    }

    private static void openFirefoxDef(){
 //       實(shí)例化 FirefoxDriver诗眨, 啟動(dòng)Firefox
        WebDriver driver = new FirefoxDriver();
    }

  • 如果火狐不是默認(rèn)安裝路徑,你需要制定火狐按路徑:
    public static void main(String args[]) {
        openFireFoxTest();
    }
    public void openFireFoxTest(){
//        指定firefox 安裝路徑
        System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
//        啟動(dòng)firefox瀏覽器
        WebDriver driver = new FirefoxDriver();
    }

2孕讳、 當(dāng)火狐版本V48+時(shí)匠楚,那么想啟動(dòng)火狐瀏覽器,我們得去下載火狐對(duì)應(yīng)的geckodriver厂财。下載地址:https://github.com/mozilla/geckodriver/releases芋簿,基本下載最新版便可。那么我看下這時(shí)我們?nèi)绾螁?dòng)Firefox:
#注意這里只是支持firefox默認(rèn)安裝C盤(pán)的情況
    public static void main(String args[]) {
        openFirefoxByGeck();
    }
    private static void openFirefoxByGeck() {
//        設(shè)置系統(tǒng)變量,并設(shè)置 geckodriver 的路徑為系統(tǒng)屬性值
        System.setProperty("webdriver.gecko.driver", ".\\drivers\\geckodriver.exe");
//        實(shí)例化 FirefoxDriver
        WebDriver driver = new FirefoxDriver();
    }

#要啟動(dòng)firefox自定義安裝位置會(huì)報(bào)PATH沒(méi)有firefox二進(jìn)制文件璃饱,處理如下:
 FirefoxOptions options = new FirefoxOptions();
 options.setBinary("D:\\Firefox\\firefox.exe");    //導(dǎo)入firefox安裝路徑
 System.setProperty("webdriver.gecko.driver","./driver/geckodriver.exe");
 driver = new FirefoxDriver(options);

4.1与斤、 Edge瀏覽器

win 10 系統(tǒng)微軟推出了全新的Edge瀏覽器,同樣上面提到Selenium 2.47.1版本開(kāi)始開(kāi)始支持這一瀏覽器荚恶,但是你的Win 10的build版本必須大于或者等于10240版本也就是說(shuō)你的edge瀏覽器版本需要是10240版本以上幽告,那如何去查看自己的系統(tǒng)版本,很簡(jiǎn)單打開(kāi)控制臺(tái)裆甩,輸入ver,顯示如下的齐唆。

image.png

通常edge版本跟系統(tǒng)版本是一致的嗤栓,但是如果你真的想查看edge版本,只需要打開(kāi)edge的設(shè)置箍邮,便可看到:

image.png

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

image.png

如果你的系統(tǒng)滿(mǎn)足要求锭弊,那恭喜你可以繼續(xù)往下堪澎。

Edge跟IE類(lèi)似,同樣我們需要去下載對(duì)應(yīng)的driver味滞,下載地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ 樱蛤,需要注意的是根據(jù)你上面所查到的系統(tǒng)版本去下載對(duì)應(yīng)的MicrosoftWebDriver,不然會(huì)報(bào)錯(cuò)剑鞍。而且下載有兩種一種是MicrosoftWebDriver.exe文件昨凡,一種是MicrosoftWebDriver.msi文件,如果你下載到的是.msi文件蚁署,那就雙擊運(yùn)行按正常軟件安裝便可便脊。如果你下載到的是MicrosoftWebDriver.exe文件,那就直接剪切放進(jìn)項(xiàng)目的drivers文件夾中:

4.2光戈、啟動(dòng)Edge瀏覽器

我們還是直接在OpenBrowser_Test類(lèi)中添加如下方法:

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哪痰,一起剝皮案震驚了整個(gè)濱河市遂赠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晌杰,老刑警劉巖跷睦,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異乎莉,居然都是意外死亡送讲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)惋啃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哼鬓,“玉大人,你說(shuō)我怎么就攤上這事边灭∫煜#” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵绒瘦,是天一觀的道長(zhǎng)称簿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)惰帽,這世上最難降的妖魔是什么憨降? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮该酗,結(jié)果婚禮上授药,老公的妹妹穿的比我還像新娘。我一直安慰自己呜魄,他們只是感情好悔叽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著爵嗅,像睡著了一般娇澎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睹晒,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天趟庄,我揣著相機(jī)與錄音,去河邊找鬼伪很。 笑死岔激,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的是掰。 我是一名探鬼主播虑鼎,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了炫彩?” 一聲冷哼從身側(cè)響起匾七,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎江兢,沒(méi)想到半個(gè)月后昨忆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杉允,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年邑贴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叔磷。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拢驾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出改基,到底是詐尸還是另有隱情繁疤,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布秕狰,位于F島的核電站稠腊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鸣哀。R本人自食惡果不足惜架忌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望我衬。 院中可真熱鬧鳖昌,春花似錦、人聲如沸低飒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)褥赊。三九已至,卻和暖如春莉恼,著一層夾襖步出監(jiān)牢的瞬間拌喉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工俐银, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尿背,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓捶惜,卻偏偏與公主長(zhǎng)得像田藐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349