2017-03-08 6 views
0

버전 1.6.0에서 로컬로 캐시 된 것을 참조하도록 드라이버를 강제하는 옵션이 옵션이되었습니다. 아직 캐시 된 것이 없다면 어떻게 될지 궁금합니다.아직 아무것도 캐시되지 않은 경우 .forceCache()를 사용하면 어떻게됩니까?

내가 의존하는 프로젝트가 있기 때문에 우리 조직의 여러 사람들이 이것을 처음 실행하고 아무 것도 캐시하지 않으면 의존합니다 .ForforceCache()가 실패하거나 실패할까요? 다시 드라이버의 원격 저장소로 이동 하시겠습니까?

그렇지 않으면 처음으로 나가는 초기화 방법이 필요할 것입니다. 도움이나 정보를 제공해 주셔서 감사합니다.

답변

1

forceCache() 메서드를 사용하고 캐시 된 것이 없으면 WebDriverManager는 온라인 리포지토리에서 최신 버전을 다운로드합니다.

불행히도이 방법 (forceCache())을 사용할 수 없게 만드는 버그 버전 1.6.0이 있습니다 (제대로 작동하지 않음). 다행히도,이 글을 쓰던 시점에 출시 된 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 
+0

답변에 대한 감사 및 감사이 라이브러리를 작성하기위한, 그것은이었다 우리의 UI 테스트 자동화가 최대한 이식 가능한지 확인하는 데 큰 도움이됩니다. – mmyers

+0

또한 @BoniGarcia 공용 Nexus 레포에서 1.6.1을 사용할 수있는시기를 알고 계십니까? 현재 1.6.0 만 사용할 수 있습니다. – mmyers

+0

이미 [Maven Central] (http://search.maven.org/#artifactdetails%7Cio.github.bonigarcia%7Cwebdrivermanager%7C1.6.1%7Cjar)에서 사용할 수 있습니다. –