web-dev-qa-db-ja.com

Firefoxとchromeブラウザでキャッシュを保持-SeleniumWebDriver

現在、私たちのWebアプリケーションは、キャッシュなしで完全にロードするのに約3分、キャッシュありで10秒かかります。 WebDriverを使用してアプリを開くと、読み込みに約3分かかります。つまり、キャッシュは使用されません。 FirefoxとChromeブラウザーでこれを観察しました。アプリを開くたびにサーバーから各ファイルをロードする代わりに、ドライバーがキャッシュを使用できるようにする方法がわかりません。

これが私が試したことです。 1.ブラウザ設定でブラウザ出口のキャッシュのクリアを無効にしました。 2.「applicationCacheEnabled」desiredcapabilitiyを「true」に設定します

DesiredCapabilities cap = DesiredCapabilities.firefox();

cap.setCapability("applicationCacheEnabled", "true");

WebDriver d = new FirefoxDriver(cap)

しかし、何も機能していないようです。キャッシュを使用するようにWebdriverを作成する方法を教えてください。

13
Muthu

問題は、Seleniumがすべての起動時に新しい(firefox/chrome)プロファイルをtempディレクトリにコピーし、それを使用してfirefox/chromeを起動することです。ただし、テストインスタンスに常に同じプロファイルを使用することは可能です。このようにして、より速く動作させることができると思います。

Firefoxの場合、次の手順を実行する必要があります。
1。 WebアプリをSeleniumfirefoxインスタンスにロードし、後で閉じないでください(driver.close();ではありません)。
2。次に、ヘルプ->トラブルシューティング情報に移動し、プロファイルフォルダの下のフォルダを開きます。
3。その内容をテストコードの近くの新しいフォルダーにコピーします。
4。保存したプロファイルをテストコードにロードします。あなたはこのようにそれを行うことができます:

FirefoxProfile profile = new FirefoxProfile(new File("profile/folder/path"));                  
WebDriver driver = new FirefoxDriver(profile); 

chrome類似でこれを行うことができると思います。

8
Thorben