眾所周知Selenium是使用WebDriver來控制瀏覽器進行各種操作的,并且支持多瀏覽器,
那么如何獲取各種瀏覽器的WebDriver,記錄下我自己的嘗試分享給大家,很簡單
注意:瀏覽器和對應瀏覽器驅動的版本是有限制的
一、最最常用的google瀏覽器(是最推薦的,也是我最多用的)
Chrome瀏覽器的內核是Blink
public WebDriver getWebDriver(){
try {
System.setProperty("webdriver.chrome.driver", "填位置");//chromedriver安裝位置
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");//無界面參數
chromeOptions.addArguments("--no-sandbox");//禁用沙盒,防止訪問受限
chromeOptions.addArguments("--window-size=1920,1080");//設置初始打開窗口的大小
chromeOptions.addArguments("--disable-extensions");//禁用擴展
chromeOptions.addArguments("--disable-dev-shm-usage");
//chromeOptions.addArguments("start-maximized");//
//chromeOptions.addArguments("--start-maximized");
webDriver = new ChromeDriver(chromeOptions);
}catch (Exception E){
}
return webDriver;
}
二、360瀏覽器
360瀏覽器是雙核(Trident(IE)和Blink(Chrome)),所以用chromederver即可,但是需要設置360瀏覽器的地址
public WebDriver get360WebDriver(){
try {
System.setProperty("webdriver.chrome.driver", "填位置\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
// chromeOptions.addArguments("--headless");//無界面參數
chromeOptions.addArguments("--no-sandbox");//禁用沙盒,防止訪問受限
chromeOptions.addArguments("--window-size=1920,1080");
chromeOptions.addArguments("--disable-extensions");//禁用擴展
chromeOptions.addArguments("--disable-dev-shm-usage");//overcome limited resource problems
//360瀏覽器是雙核瀏覽器,可以用chromedriver來驅動
chromeOptions.setBinary("電腦上\360cse\\360Chrome\\Chrome\\Application\\360chrome.exe");
// chromeOptions.setBinary("電腦上\360se\\360se6\\Application\\360se.exe");
webDriver = new ChromeDriver(chromeOptions);
}catch (Exception E){
logger.info("webdriver啟動失敗:"+E.getMessage());
}
return webDriver;
}
三、Firefox火狐瀏覽器
Firefox瀏覽器的內核是Gecko
public WebDriver getFirefoxWebDriver(){
try {
System.setProperty("webdriver.gecko.driver", "驅動位置\geckodriver.exe");
System.setProperty("webdriver.firefox.bin", "瀏覽器位置\Mozilla Firefox\\firefox.exe");
FirefoxOptions options = new FirefoxOptions ();
webDriver = new FirefoxDriver(options);
}catch (Exception E){
logger.info("webdriver啟動失敗:"+E.getMessage());
}
return webDriver;
}
我本地調試的話,以前寫好的代碼能跑,但是報錯很多,估計需要做兼容
四、Edge瀏覽器
Edge瀏覽器現在的內核是Chromium,但早期版本(Edge Legacy)的內核是Trident
public WebDriver getEdgeWebDriver(){//能跑,但是報錯很多
try {
System.setProperty("webdriver.edge.driver", "驅動位置\msedgedriver.exe");//64位也用32位的
webDriver = new EdgeDriver();
}catch (Exception E){
logger.info("webdriver啟動失敗:"+E.getMessage());
}
return webDriver;
}
我本地調試的話,以前寫好的代碼能跑,但是報錯很多,估計需要做兼容
五、IE瀏覽器
IE瀏覽器的內核是Trident
public WebDriver getIEWebDriver(){
try {
System.setProperty("webdriver.ie.driver", "驅動位置\IEDriverServer_32.exe");//64位也用32位的
InternetExplorerOptions options = new InternetExplorerOptions();
options.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
webDriver = new InternetExplorerDriver(options);
}catch (Exception E){
logger.info("webdriver啟動失敗:"+E.getMessage());
}
return webDriver;
}
我本地調試的話,以前寫好的代碼能跑,但是報錯很多,估計需要做兼容