2

SafariDriver の実行中にテストを新たに開始するときにキャッシュをクリアする方法を知っている人はいますか? java ロボットを使用して、コマンド + オプション + e のキーを押してみましたが、うまくいかないようです。ブラウザに焦点を当てていません。

ロボット r = 新しいロボット();

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 キャッシュをクリアするものはないようです。

4

1 に答える 1

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("Cookie が削除されました");

于 2013-10-01T20:41:31.513 に答える