对于我的Selenium / Cucumber / Maven项目,我通过Webdrivermanager在具有互联网连接的虚拟机上下载了最新版本的Chrome和IE驱动程序。在此之后,我在没有Internet连接的Windows服务器上使用了相同的项目(使用相同的Maven本地repo文件夹),在IntelliJ中设置了本地Maven repo文件夹的覆盖并添加了forceCache选项:
ChromeDriverManager.getInstance().forceCache().setup();
driver = new ChromeDriver();
webdrivermanager的版本= 1.7.2
当使用Maven命令mvn test clean通过Windows命令行执行测试时,我收到以下连接错误。浏览器驱动程序在本地仓库中可用。
INFO BrowserManager - Reading https://chromedriver.storage.googleapis.com/
to seek [chromedriver]
[main] INFO BrowserManager - Reading
https://chromedriver.storage.googleapis.com/ to seek [chromedriver]
[main] WARN BrowserManager - [1/3] Exception reading
https://chromedriver.storage.googleapis.com/ to seek [chromedriver]:
org.apache.http.conn.HttpHostConnectException Connect to
chromedriver.storage.googleapis.com:443
[chromedriver.storage.googleapis.com/216.58.212.208] failed: Connection
timed out: connect
更新:我已经通过具有互联网连接的虚拟机再次执行了我的测试。看起来Maven仍在使用默认的.m2文件夹,该文件夹不包含缓存的浏览器驱动程序,webdrivermanager尝试下载文件。所以这不是webdrivermanager问题,而是Maven问题。有没有人建议解决这个问题?我已经重启了我的机器,但没有运气。
答案 0 :(得分:0)
Windows机器中WebDriverManager使用的缓存位于C:\Users\your-user\.m2\repository
。具体而言,对于 chromedriver ,二进制文件应为C:\Users\your-user\.m2\repository\webdriver\chromedriver\win32\2.33\chromedriver.exe
。检查此文件是否确实存在,因为这是forceCache()
方法要查找的内容。我再次加倍检查,此功能仍然按预期工作。在您的情况下,似乎缓存文件不可用,因此WebDriverManager尝试下载它。