众所周知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;
}
我本地调试的话,以前写好的代码能跑,但是报错很多,估计需要做兼容