vlambda博客
学习文章列表

自动化管理Webdriver驱动文件

当我们在使用Selenium Webdriver 进行自动化脚本开发时,我们都需要先下载各浏览器对应的驱动文件,而且还需要在脚本中去设置这些文件的路径。有没有自动化的方式来解决这个问题呢,我们在初始化方法中任意选择我们想使用的浏览器类型及版本?

例如我们之前脚本中使用IE浏览器时是这么在脚本中设置的:

 
   
   
 
  1. System.setProperty("webdriver.ie.driver",System.getProperty("user.dir")+"\\driver\\IEDriverServer.exe");

除了这些我们还要保证兼容性,这是一个很麻烦的过程。

是否可以自动的下载管理这些驱动文件呢?

我们发现Webdrivermanager可以帮助我们自动下载各种浏览器的驱动文件。它支持Chrome,Firefox,Opera,PhantomJS,Microsoft Edge或Internet Explorer等浏览器。我们只需要在我们的mavne项目中,POM文件中添加依赖即可导入该jar包

 
   
   
 
  1. <dependency>

  2. <groupId>io.github.bonigarcia</groupId>

  3. <artifactId>webdrivermanager</artifactId>

  4. <version>3.0.0</version>

  5. <scope>test</scope>

  6. </dependency>

如何使用?

代码示例

 
   
   
 
  1. public class SearchTest {


  2. WebDriver driver;


  3. BaiduHomePage homePage;


  4. SearchResultPage resultPage;


  5. @BeforeClass

  6. public void setUp() throws Exception{

  7. // System.setProperty("webdriver.ie.driver",System.getProperty("user.dir")+"\\driver\\IEDriverServer.exe");

  8. //这么调用即可

  9. WebDriverManager.iedriver().setup();

  10. driver = new InternetExplorerDriver();

  11. driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

  12. driver.get("http://www.baidu.com");

  13. }

  14. @Test

  15. public void testSearch() throws InterruptedException {

  16. //创建首页对象

  17. homePage = new BaiduHomePage(driver);

  18. //输入搜索关键字

  19. homePage.setKeyWords("测试");

  20. //点击搜索按钮

  21. homePage.clickSearchButton();

  22. //创建搜索结果页对象

  23. resultPage = new SearchResultPage(driver);

  24. Thread.sleep(3000);

  25. //获取搜索页标题

  26. String titleText = resultPage.getTitleText();

  27. //验证页面标题中是否包含测试关键字

  28. Assert.assertTrue(titleText.contains("测试"));

  29. }


  30. @AfterClass

  31. public void tearDown(){


  32. driver.quit();

  33. }

  34. }


当我们在代码中使用它时,会默认下载最新对应的驱动文件。如果我们想指定驱动版本,可以这么设置:

 
   
   
 
  1. WebDriverManager.chromedriver().version("2.30").setup();