一敦冬、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é)果如下:
1.2截珍、 IE的配置
配置IE攀甚,打開(kāi)IE選項(xiàng),打開(kāi)安全標(biāo)簽岗喉,如下圖秋度,設(shè)置紅框部分,設(shè)置每個(gè)區(qū)域的 “啟動(dòng)保護(hù)模式”钱床,要嘛都勾選荚斯,要嘛都不勾選。
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 相同位置,如下圖:
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,顯示如下的齐唆。
通常edge版本跟系統(tǒng)版本是一致的嗤栓,但是如果你真的想查看edge版本,只需要打開(kāi)edge的設(shè)置箍邮,便可看到:
另外值得注意的是從微軟官方 https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/webdriver-commands/ 中我們可以得知茉帅,如果你想使用XPath Selector(后面會(huì)講這種重要的頁(yè)面定位方式)那么你的build版本需要大于等于10586。
如果你的系統(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();
}