自动化管理Webdriver驱动文件
当我们在使用Selenium Webdriver 进行自动化脚本开发时,我们都需要先下载各浏览器对应的驱动文件,而且还需要在脚本中去设置这些文件的路径。有没有自动化的方式来解决这个问题呢,我们在初始化方法中任意选择我们想使用的浏览器类型及版本?
例如我们之前脚本中使用IE浏览器时是这么在脚本中设置的:
System.setProperty("webdriver.ie.driver",System.getProperty("user.dir")+"\\driver\\IEDriverServer.exe");
除了这些我们还要保证兼容性,这是一个很麻烦的过程。
是否可以自动的下载管理这些驱动文件呢?
我们发现Webdrivermanager可以帮助我们自动下载各种浏览器的驱动文件。它支持Chrome,Firefox,Opera,PhantomJS,Microsoft Edge或Internet Explorer等浏览器。我们只需要在我们的mavne项目中,POM文件中添加依赖即可导入该jar包
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.0.0</version>
<scope>test</scope>
</dependency>
如何使用?
代码示例
public class SearchTest {
WebDriver driver;
BaiduHomePage homePage;
SearchResultPage resultPage;
@BeforeClass
public void setUp() throws Exception{
// System.setProperty("webdriver.ie.driver",System.getProperty("user.dir")+"\\driver\\IEDriverServer.exe");
//这么调用即可
WebDriverManager.iedriver().setup();
driver = new InternetExplorerDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.baidu.com");
}
@Test
public void testSearch() throws InterruptedException {
//创建首页对象
homePage = new BaiduHomePage(driver);
//输入搜索关键字
homePage.setKeyWords("测试");
//点击搜索按钮
homePage.clickSearchButton();
//创建搜索结果页对象
resultPage = new SearchResultPage(driver);
Thread.sleep(3000);
//获取搜索页标题
String titleText = resultPage.getTitleText();
//验证页面标题中是否包含测试关键字
Assert.assertTrue(titleText.contains("测试"));
}
@AfterClass
public void tearDown(){
driver.quit();
}
}
当我们在代码中使用它时,会默认下载最新对应的驱动文件。如果我们想指定驱动版本,可以这么设置:
WebDriverManager.chromedriver().version("2.30").setup();