如果你在没有任何缓存的情况下使用 .forceCache() 会发生什么?
What happens if you use .forceCache() if there's nothing cached yet?
从 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
从 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