从版本 1.6.0 开始,强制驱动程序引用本地缓存的选项成为一个选项。我想知道如果还没有任何缓存会发生什么?
我之所以问,是因为我有一个依赖于此的项目,我们组织中的几个人都依赖它,如果他们是第一次运行它并且没有缓存任何内容,.forceCache() 会失败还是会退回去驱动程序的远程存储库?
否则,我猜我需要一个初始化方法,它会在第一时间发出并获取它们。感谢您提供任何帮助或信息。
从版本 1.6.0 开始,强制驱动程序引用本地缓存的选项成为一个选项。我想知道如果还没有任何缓存会发生什么?
我之所以问,是因为我有一个依赖于此的项目,我们组织中的几个人都依赖它,如果他们是第一次运行它并且没有缓存任何内容,.forceCache() 会失败还是会退回去驱动程序的远程存储库?
否则,我猜我需要一个初始化方法,它会在第一时间发出并获取它们。感谢您提供任何帮助或信息。
如果forceCache()
使用方法并且没有缓存任何内容,WebDriverManager 从在线存储库下载最新版本。
不幸的是,有一个错误版本 1.6.0 使这个方法 ( forceCache()
) 无用(它不能正常工作)。幸运的是,在撰写本文时刚刚发布的 1.6.1 版本中已修复此问题。
例如下面的测试用例:
public class ChromeTest {
private WebDriver driver;
@BeforeClass
public static void setupClass() {
ChromeDriverManager.getInstance().forceCache().setup();
}
@Before
public void setupTest() {
driver = new ChromeDriver();
}
@After
public void teardown() {
if (driver != null) {
driver.quit();
}
}
@Test
public void test() {
// test code here
}
}
...第一次运行(并且没有缓存任何 chromedriver)将下载最新版本的 chromedriver。查看日志:
[2017-03-08 17:27:27:574] [main] INFO BrowserManager - Reading https://chromedriver.storage.googleapis.com/ to seek [chromedriver]
[2017-03-08 17:27:29:728] [main] INFO BrowserManager - Latest version of [chromedriver] is 2.27
[2017-03-08 17:27:29:730] [main] INFO Downloader - Downloading https://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip to /home/boni/.m2/repository/webdriver/chromedriver/linux64/2.27/chromedriver_linux64.zip
[2017-03-08 17:27:30:354] [main] INFO BrowserManager - Exporting webdriver.chrome.driver as /home/boni/.m2/repository/webdriver/chromedriver/linux64/2.27/chromedriver
Starting ChromeDriver 2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320) on port 3907
Only local connections are allowed.
Mar 08, 2017 5:27:31 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
...第二次运行相同的测试时,将使用缓存的版本:
[2017-03-08 17:27:37:124] [main] INFO BrowserManager - Found chromedriver in cache: /home/boni/.m2/repository/webdriver/chromedriver/linux64/2.27/chromedriver
[2017-03-08 17:27:37:125] [main] INFO BrowserManager - Exporting webdriver.chrome.driver as /home/boni/.m2/repository/webdriver/chromedriver/linux64/2.27/chromedriver
Starting ChromeDriver 2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320) on port 31776
Only local connections are allowed.
Mar 08, 2017 5:27:38 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS