2017-03-08 120 views
0

從版本1.6.0開始,強制驅動程序引用本地高速緩存的選項成爲一個選項。我想知道如果沒有緩存,會發生什麼?如果使用.forceCache()如果沒有緩存的話會發生什麼?

我在問,因爲我有一個項目依賴於這個項目,如果我們組織中的幾個人第一次運行此項目並且沒有任何內容被緩存,那麼.forceCache()會失敗還是會崩潰回到驅動程序的遠程存儲庫?

否則,我想我會需要一個初始化方法,出去並獲得他們的第一次。感謝您的幫助或信息。

回答

1

如果使用forceCache()方法且沒有任何緩存,WebDriverManager會從聯機存儲庫下載最新版本。

不幸的是,有一個bug版本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 
+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)。 –

相關問題