Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用Java运行某些SeleniumWebDriver测试之前,请清除缓存_Java_Selenium Webdriver_Browser Cache - Fatal编程技术网

在使用Java运行某些SeleniumWebDriver测试之前,请清除缓存

在使用Java运行某些SeleniumWebDriver测试之前,请清除缓存,java,selenium-webdriver,browser-cache,Java,Selenium Webdriver,Browser Cache,我正在用java编程语言研究SeleniumWebDriver自动化。在我的测试套件中,启动浏览器窗口一次并执行所有测试。我想在运行某些测试之前清除浏览器缓存,而不重新启动浏览器。是否有任何命令/功能可以实现此目的?谢谢。谢谢你的IE DesiredCapabilities ieCap = DesiredCapabilities.internetExplorer(); ieCap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESS

我正在用java编程语言研究SeleniumWebDriver自动化。在我的测试套件中,启动浏览器窗口一次并执行所有测试。我想在运行某些测试之前清除浏览器缓存,而不重新启动浏览器。是否有任何命令/功能可以实现此目的?谢谢。

谢谢你的IE

DesiredCapabilities ieCap =  DesiredCapabilities.internetExplorer();
ieCap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
对于铬:

要删除Cookie,请执行以下操作:

driver.manage().deleteAllCookies();

至少在Chrome上,我坚信如果你隐姓埋名,你就不必清理你的饼干了。您可以设置如下选项(如下所示):

这样称呼:

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

这就是我在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。希望这会有所帮助!:)

以下代码基于@An Khang的答案。它在Chrome 78上工作正常

ChromeDriver chromeDriver = new ChromeDriver();

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

    return chromeDriver;
您需要导入较新版本中的密钥,并将最后一行更改为findElement by xpath

WebDriver driver = new ChromeDriver();

driver.manage().deleteAllCookies();
driver.get("chrome://settings/clearBrowserData");
driver.findElement(By.xpath("//settings-ui")).sendKeys(Keys.ENTER);

DesiredCapabilities
已被弃用,但并不认为它对端到端测试有用,因为此时,您不再使用与客户相同的环境。此选择器不再返回81.0中的任何元素。4此解决方案对我有效,我使用的是chrome 86,感谢这在chrome 87中不起作用,回车键不会触发清除缓存。这不正是Ambesh Srivastava回答的吗?我只是写了它,因为在新版本中需要导入。不起作用..至少不再起作用了
    WebDriver driver = new ChromeDriver();
    driver.manage().deleteAllCookies();
    driver.get("chrome://settings/clearBrowserData");
    driver.findElement(By.xpath("//settings-ui")).sendKeys(Keys.ENTER);
import org.openqa.selenium.Keys;
WebDriver driver = new ChromeDriver();

driver.manage().deleteAllCookies();
driver.get("chrome://settings/clearBrowserData");
driver.findElement(By.xpath("//settings-ui")).sendKeys(Keys.ENTER);