Java 在使用SafariDriver开始新测试之前清除Cookie
有人知道在运行SafariDriver时如何在新的测试开始时清除缓存吗?我曾尝试使用JavaRobot按command+option+e,但这似乎不起作用。它不关注浏览器 机器人r=新机器人() 我也尝试过使用actions.builder方法,但似乎不起作用Java 在使用SafariDriver开始新测试之前清除Cookie,java,selenium,safaridriver,Java,Selenium,Safaridriver,有人知道在运行SafariDriver时如何在新的测试开始时清除缓存吗?我曾尝试使用JavaRobot按command+option+e,但这似乎不起作用。它不关注浏览器 机器人r=新机器人() 我也尝试过使用actions.builder方法,但似乎不起作用 String clearCache = Keys.chord(Keys.CONTROL, Keys.COMMAND, "E"); Actions builder = new Actions(browser);
String clearCache = Keys.chord(Keys.CONTROL, Keys.COMMAND, "E");
Actions builder = new Actions(browser);
builder.sendKeys(clearCache);
Action clearCacheAction = builder.build();
clearCacheAction.perform();
我也研究过使用SafariDriver选项,但我的java并没有那么好,无法完全理解如何实现它。下面是我一直试图使用的代码。我创建了一个SafariOptions类,并尝试在@before类中实例化它
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();
}
在每次测试运行时,似乎都没有任何东西可以清除Safari缓存。为所有可能想知道的人提供快速而简单的解决方案 将以下代码添加到根目录的.sh文件中
killall cookied
rm -rf ~/Library/Caches/com.apple.Safari/*
rm -rf ~/Library/Safari/LocalStorage/*
rm -rf ~/Library/Cookies/*
调用@Before中的文件
Runtime=Runtime.getRuntime();
runtime.exec(“file.sh”)
System.out.println(“删除Cookies”) 我从未遇到过Selenium的缓存问题。让我猜个谜:你为什么要这么做?我相信你可以用其他方法解决你的问题。我的登录系统会缓存登录数据,并且不会干净地返回页面。在返回的用户加载页面上,并非所有元素都可见,并且并非所有表单元素都相同;看见
killall cookied
rm -rf ~/Library/Caches/com.apple.Safari/*
rm -rf ~/Library/Safari/LocalStorage/*
rm -rf ~/Library/Cookies/*