Javaプログラミング言語でSeleniumWebDriverの自動化に取り組んでいます。ブラウザウィンドウを1回起動し、すべてのテストを実行するテストスイートで。再起動せずにいくつかのテストを実行する前にブラウザのキャッシュをクリアしたいブラウザ。目的を達成できるコマンド/機能はありますか?ありがとうございます。
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();
これは私が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に変換してみることができます。これがお役に立てば幸いです。 :)
少なくとも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"])
次のコードは、@ AnKhangの回答に基づいています。そしてそれはChrome 78で正しく動作しています。
ChromeDriver chromeDriver = new ChromeDriver();
chromeDriver.manage().deleteAllCookies();
chromeDriver.get("chrome://settings/clearBrowserData");
chromeDriver.findElementByXPath("//settings-ui").sendKeys(Keys.ENTER);
return chromeDriver;