Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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 在使用SafariDriver开始新测试之前清除Cookie_Java_Selenium_Safaridriver - Fatal编程技术网

Java 在使用SafariDriver开始新测试之前清除Cookie

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);

有人知道在运行SafariDriver时如何在新的测试开始时清除缓存吗?我曾尝试使用JavaRobot按command+option+e,但这似乎不起作用。它不关注浏览器

机器人r=新机器人()

我也尝试过使用actions.builder方法,但似乎不起作用

    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/*