Selenium驱动火狐、IE、Edge和Chrome浏览器的方
2017-06-23 本文已影响2921人
呆呆冬
1. 火狐(firefox)
从Selenium2.x切换到Selenium 3.X后,发现老的方法驱动不了Firefox浏览器了。
用老的方法执行代码后,控制台报出“java.lang.IllegalStateException”错误,提示Firefox驱动必须以“webdriver.gecko.driver”环境变量初始化;如果需要更多信息,请点击https://github.com/mozilla/geckodriver;
Firefox驱动文件版本下载地址,请点击https://github.com/mozilla/geckodriver/releases
2. IE
下载最新版的IEDriverServer.exe
3. Edge
(参考地址:http://blog.csdn.net/qq_29720415/article/details/53521746)
(1)首先找驱动:
官网下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
打开这个网址后,我们要根据自己电脑的操作系统版本来决定下载哪个版本的webdriver:
如果webdriver跟操作系统不匹配,那么是驱动不了浏览器的。
(2)查看自己win10操作系统build的方法:
开始-设置-系统-关于-OS版本 像我的电脑就是14393.447的 所以驱动我就下的是Release 14393
4.Chrome
根据Chrome浏览器版本下载对应的chromedriver,当然,一般情况下我们下载最新版的驱动即可。
下载地址:https://sites.google.com/a/chromium.org/chromedriver/
5.下载后的驱动放置到同一路径,方便使用:
6.Selenium驱动以上浏览器的方法:
package example;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
public class MultipleBrowserSearchTest {
public WebDriver driver;
@Parameters("browser")
@BeforeTest
public void beforeTest(String Browser) {
//分别启动火狐、IE、Edge和Chrome浏览器
if(Browser.equalsIgnoreCase("firefox")){
System.setProperty("webdriver.gecko.driver", "D:\\selenium\\drivers\\geckodriver.exe");
driver = new FirefoxDriver();
}else if(Browser.equalsIgnoreCase("ie")){
System.setProperty("webdriver.ie.driver", "D:\\selenium\\drivers\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
}else if(Browser.equalsIgnoreCase("edge")){
System.setProperty("webdriver.edge.driver", "D:\\selenium\\drivers\\MicrosoftWebDriver14393.exe");
driver = new EdgeDriver();
}else{
System.setProperty("webdriver.chrome.driver", "D:\\selenium\\drivers\\chromedriver2.30.exe");
driver = new ChromeDriver();
}
driver.manage().window().maximize();
}
@Test
public void mallcooTest() {
//打开测试库标准版后台
driver.get("http://mp-t.mallcoo.cn/");
WebElement usernameInputBox=driver.findElement(By.id("username"));
Assert.assertTrue(usernameInputBox.isDisplayed());
usernameInputBox.sendKeys("xxx");
WebElement passwordInputBox=driver.findElement(By.id("password"));
Assert.assertTrue(passwordInputBox.isDisplayed());
passwordInputBox.sendKeys("xxx");
}
@AfterTest
public void afterTest() {
driver.quit();//关闭打开的浏览器
}
}