Что произойдет, если вы используете.forceCache(), если еще ничего не кэшировано?
Начиная с версии 1.6.0, опция принудительно заставлять драйвер ссылаться на то, что кэшируется локально, стала опцией. Мне было интересно, что произойдет, если еще ничего не будет кешировано?
Я спрашиваю, потому что у меня есть проект, основанный на этом, на который полагаются несколько человек в нашей организации, если они запускают это в первый раз и ничего не кэшируется, произойдет сбой.forceCache() или он вернется к переходу на удаленный репозиторий для драйвера?
В противном случае, я думаю, мне понадобится метод инициализации, который выходит и получает их в первый раз. Спасибо за любую помощь или информацию.
1 ответ
Если 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