Does anyone know how to clear the cache on a new start of a test while running SafariDriver? I've tried to use java robot to keypress command + option + e, but that does not seem to work. It does not focus on the browser.
Robot r = new Robot();
try {
Robot robot = new Robot();
r.keyPress(KeyEvent.META_MASK);
r.keyPress(KeyEvent.VK_META);
r.keyPress(KeyEvent.VK_E);
r.keyRelease(KeyEvent.VK_E);
r.keyRelease(KeyEvent.VK_META);
r.keyRelease(KeyEvent.META_MASK);
} catch (AWTException e) {
e.printStackTrace();
}
Ive also tried to do an actions.builder method but that does not seem to work
String clearCache = Keys.chord(Keys.CONTROL, Keys.COMMAND, "E");
Actions builder = new Actions(browser);
builder.sendKeys(clearCache);
Action clearCacheAction = builder.build();
clearCacheAction.perform();
I've also looked into using SafariDriver options but my java is not that good to fully understand how to implement it. Below is the code that Ive been trying to use. I created a SafariOptions Class and tried to instantiate it in my @before class.
package test
import org.openqa.selenium.safari.SafariDriver;
public class SafariOptions extends SafariDriver {
private static SafariOptions ourInstance = new SafariOptions();
public static SafariOptions getInstance() {
return ourInstance;
}
public void setUseCleanSession(boolean useCleanSession){
}
public SafariOptions() {
boolean useCleanSession = true;
}
}
@Before
public void createDriver() {
assumeTrue(isSupportedPlatform());
browser = new SafariDriver();
SafariDriver options = new SafariOptions();
}
Nothing seems to clear the Safari cache on each test run.