Что произойдет, если вы используете.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
Другие вопросы по тегам