【问题标题】:Clear cookies before starting new test using SafariDriver在使用 SafariDriver 开始新测试之前清除 cookie
【发布时间】:2013-10-05 13:25:07
【问题描述】:

有谁知道在运行 SafariDriver 时如何在新的测试开始时清除缓存?我尝试使用 java 机器人按键命令 + 选项 + e,但这似乎不起作用。它不关注浏览器。

机器人 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();
}

我也尝试过使用 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 缓存。

【问题讨论】:

  • 我从来没有遇到过 Selenium 的缓存问题。给我一个谜语:你为什么需要这样做?我相信您可以通过其他方式解决您的问题。
  • 我的登录系统缓存了登录数据,没有干净地返回页面。并非所有元素都在页面的返回用户加载中可见,并且并非所有表单元素都是相同的。
  • 这似乎是 Safari / SafariDriver 的已知问题;见code.google.com/p/selenium/issues/detail?id=5212

标签: java selenium safaridriver


【解决方案1】:

为所有可能想知道的人提供快速简便的解决方案。

将以下代码添加到根目录的 .sh 文件中。

killall cookied
rm -rf ~/Library/Caches/com.apple.Safari/*
rm -rf ~/Library/Safari/LocalStorage/*
rm -rf ~/Library/Cookies/*

调用@Before中的文件

运行时运行时 = Runtime.getRuntime(); runtime.exec("file.sh");

System.out.println("Cookies 已移除");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-13
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多