当前位置: 首页> 房产> 建材 > 南京h5网站建设_北京空间优化平台_西安seo服务_怀化网络推广

南京h5网站建设_北京空间优化平台_西安seo服务_怀化网络推广

时间:2025/7/13 11:08:23来源:https://blog.csdn.net/qq_45594960/article/details/144911337 浏览次数:1次
南京h5网站建设_北京空间优化平台_西安seo服务_怀化网络推广

文章目录

    • 概述
      • 传统频繁下载对应浏览器驱动镜像的烦恼
    • 如何使用?
      • maven 依赖
      • WebDriverUtil

python 使用方式请参看往期:python 浏览器驱动代理如何使用?

java web ui 框架搭建请参看往期:一文搞定 Java + Selenium + TestNG + Allure 的框架搭建以及封装!

概述

传统频繁下载对应浏览器驱动镜像的烦恼

当我们使用selenium 浏览器驱动的时候,我们常用做法就是,针对不同的浏览器下载不同的镜像版本,然后再进行浏览器访问;这样做的缺点在于:

当浏览器更新版本时候,你需要同步更新对应的浏览器驱动镜像,频繁维护
浏览器镜像源地址不稳定,有时候找不到对应的浏览器驱动镜像源头,下载缓慢

那么有没有一种方法,我不用频繁的安装对应的驱动,找镜像源,让第三方代理,我只需要写少量的代码即可,让它自动的去下载我对应的浏览器版本的驱动?

有的! 就是 webdriver_manager 这个第三方库!

官方网址:webdrivermanager

在这里插入图片描述

如何使用?

maven 依赖

pom.xml 文件中添加依赖


<!--浏览器驱动代理--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.9.2</version></dependency>

WebDriverUtil

假设你有一个启动浏览器驱动的工具类,那么你就可以在你的工具类中,添加如下的方式:

package org.ceiling.utils;import io.github.bonigarcia.wdm.WebDriverManager;
import org.ceiling.api.EnvironmentType;
import org.ceiling.base.BasePage;
import org.ceiling.enums.BrowserType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class WebDriverUtil {private static final Logger logger = LoggerFactory.getLogger(BasePage.class);private static WebDriver driver;// 私有构造方法,防止外部实例化private WebDriverUtil(){}// 使用BrowserType枚举来创建WebDriver实例public static WebDriver getDriver(BrowserType browserType) {if (driver == null) {switch (browserType) {case CHROME:WebDriverManager.chromedriver().setup();driver = new ChromeDriver();logger.info("CHROME 浏览器启动成功,正在打开网站...");break;case FIREFOX:WebDriverManager.firefoxdriver().setup();driver = new FirefoxDriver();logger.info("FIREFOX 浏览器启动成功,正在打开网站...");break;case EDGE:WebDriverManager.edgedriver().setup();driver = new EdgeDriver();logger.info("EDGE 浏览器启动成功,正在打开网站...");break;default:throw new IllegalArgumentException("不支持的浏览器类型: " + browserType);}// 配置通用设置,比如隐式等待时间// 表示隐式等待10s 以下两种方式均可// driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));// driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);// 获取环境 url 您也可以使用 application.properties 类似的配置文件形式 方式多样化 这里使用枚举类driver.get("https://www.baidu.com");driver.manage().window().maximize();}return driver;}// 关闭并释放资源的方法public static void quitDriver() {if (driver != null) {driver.quit();driver = null;}}}

具体运行日志如下所示:
在这里插入图片描述

[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
2025-01-03 15:35:00.338 [main] INFO  i.g.bonigarcia.wdm.WebDriverManager - Using chromedriver 131.0.6778.204 (resolved driver for Chrome 131)
2025-01-03 15:35:00.405 [main] INFO  i.g.bonigarcia.wdm.WebDriverManager - Exporting webdriver.chrome.driver as C:\Users\.cache\selenium\chromedriver\win64\131.0.6778.204\chromedriver.exe

我们可以看到它自己下载了一个chromedriver.exe的驱动,然后存储到
C:\Users\.cache\selenium\chromedriver\win64\131.0.6778.204\chromedriver.exe 这个缓存目录之中

当再次运行的时候,会自动去缓存目录中查找有没有这个版本的相关驱动,如果有,会直接运行,如果版本不匹配,会自动下载相关匹配的版本,然后再去运行,这样,就完成了浏览器自己驱动代理,无需我们手动下载浏览器驱动镜像!

关键字:南京h5网站建设_北京空间优化平台_西安seo服务_怀化网络推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: