webdevqa.jp.net

Java)を使用してSeleniumWebDriverテストを実行する前にキャッシュをクリアします

Javaプログラミング言語でSeleniumWebDriverの自動化に取り組んでいます。ブラウザウィンドウを1回起動し、すべてのテストを実行するテストスイートで。再起動せずにいくつかのテストを実行する前にブラウザのキャッシュをクリアしたいブラウザ。目的を達成できるコマンド/機能はありますか?ありがとうございます。

6
Uziii

IEの場合

DesiredCapabilities ieCap =  DesiredCapabilities.internetExplorer();
ieCap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);

Chromeの場合:

https://code.google.com/p/chromedriver/issues/detail?id=58

クッキーを削除するには:

driver.manage().deleteAllCookies();
3
vins

これは私がPythonで使用しているものです:

from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('chrome://settings/clearBrowserData')
driver.find_element_by_xpath('//settings-ui').send_keys(Keys.ENTER)

これらをJavaに変換してみることができます。これがお役に立てば幸いです。 :)

2
An Khang

少なくともChromeでは、シークレットモードになってもCookieをクリーンアップする必要はないと強く信じています。次のようにオプションを設定できます(:

from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options

def _options():
    options = Options()
    options.add_argument('--ignore-certificate-errors')
    #options.add_argument("--test-type")
    options.add_argument("--headless")
    options.add_argument("--incognito")
    options.add_argument('--disable-gpu') if os.name == 'nt' else None # Windows workaround
    options.add_argument("--verbose")
    return options

次のように呼び出します。

with webdriver.Chrome(options=options) as driver:
    driver.implicitly_wait(conf["implicitly_wait"])
    driver.get(conf["url"])
2
Rodrigo Estevao

次のコードは、@ AnKhangの回答に基づいています。そしてそれはChrome 78で正しく動作しています。

ChromeDriver chromeDriver = new ChromeDriver();

    chromeDriver.manage().deleteAllCookies();
    chromeDriver.get("chrome://settings/clearBrowserData");
    chromeDriver.findElementByXPath("//settings-ui").sendKeys(Keys.ENTER);

    return chromeDriver;
0
ItwasJJsmile