2017-10-18 83 views
2

对于我的Selenium/Cucumber/Maven项目,我通过Webdrivermanager在具有Internet连接的虚拟机上下载了最新版本的Chrome和IE驱动程序。这之后,我使用了Windows服务器上的同一个项目(使用相同的本地Maven回购文件夹)没有互联网连接,设置在的IntelliJ本地Maven回购文件夹中的替代和补充forceCache选项:Webdrivermanager forceCache试图连接到URL

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

WebDriverManager在Windows机器中使用的缓存位于C:\Users\your-user\.m2\repository。具体而言,对于镀铬驱动器,二进制应该在C:\Users\your-user\.m2\repository\webdriver\chromedriver\win32\2.33\chromedriver.exe。检查该文件实际存在,因为这是forceCache()方法要查找的内容。我再次检查了一次,此功能仍按预期工作。在你的情况下,似乎缓存文件不可用,因此WebDriverManager尝试下载它。

+0

嗨博尼,谢谢你的回复。我假设在IDE IntelliJ Maven设置为repo文件夹覆盖,也被Webdrivermanager使用。是否有可能将其更改为自定义存储库位置?这对我们来说似乎更方便,因为我们使用GIT存储库和多个用户。 – Geoffrey

+0

使用配置键“wdm.targetPath”来更改本地存储库位置。详细信息请参见[doc](https://github.com/bonigarcia/webdrivermanager)。 –

+0

谢谢,这就是我一直在寻找:) – Geoffrey