4

Webdriver Wire Protocol には、すべてのドメインからすべての Cookie を削除する方法が含まれていません。現在のドメインからのみ Cookie を削除できます

AUT は Cookie を設定するサード パーティのサイトと統合されているため、すべてのドメインからすべての Cookie を削除したいと考えています。また、保守性を向上させるために、各テストの開始時にクリーンな状態を確保したいと考えています。

そこで、すべての Cookie を削除するドライバー固有の方法について考え始めました。特に Firefox に興味があります。

Firefox では、次のいずれかで実行できます。

  • Ctrl+ Shift+Deleteを押してからEnter
  • ワンステップでそれを可能にするFirefox拡張機能を書く

私は何かが恋しいですか?すべての Cookie を (すべてのドメインから) 削除するためのクロスドライバー オプションはありますか?

4

1 に答える 1

-4

これを行うにはいくつかの方法があります。これは、私のフレームワークで作業を通常どのように実装するかです。

新しいドライバー オブジェクト (この場合は ChromerDriver) を作成するときに、ENSURING_CLEAN_SESSION 機能を設定します。

public WebDriver driver() {

    File driverServer = new File(WebDriverConfig.class.getClassLoader().getResource("webDrivers/chromedriver.exe").getFile());
    System.setProperty("webdriver.chrome.driver", driverServer.getAbsolutePath());
    DesiredCapabilities caps = DesiredCapabilities.chrome();
    caps.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
    return new ChromeDriver();

}

次に、TestNG のフレームワークを使用した各テストの開始時に:

@BeforeMethod(alwaysRun = true)
public void setup() {

    driver.manage().deleteAllCookies();
    // Do other stuff before each test executes

}

また、Cookie を取得し、必要な Cookie を見つけて削除することで、特定の Cookie のみを削除することもできます。

driver.manage().getCookies();

これが問題の解決策を見つけるのに役立つことを願っています。

于 2013-03-26T14:12:30.670 に答える