0

全て。ドメインでCookieを取得する際に問題が発生しました。私はクッキーを取得しようとします:

def "go to site"() {
    when:
        go "http://bla-bla-bla.bla"
    then:
        title == "Bla-bla-bla"
        // check cookies
        String cookies = driver.manage().getCookieNamed("name1").getValue()
        println cookies
}

しかしname1、他のドメインで取得するCookieではなくhttp://bla-bla-bla.bla、ドメインname1でのCookieでhttp://ululu.uluあり、すべてのドメイン(サイト)ですべてのCookieを取得しようとしましたが、取得できませんでした。

すべてのドメイン(サイト)ですべてのCookieを取得するのを手伝ってください。ありがとうございました。私の英語は最悪だ。

4

3 に答える 3

3

Seleniumは、現在アクティブなドメインのCookieへのアクセスのみを提供します。つまり、現在のブラウザの状態に関連するCookieです。

私が知っているこれを回避する方法はありません。

于 2013-02-14T13:00:22.617 に答える
2

現在のプロファイルディレクトリの下にすべてのCookieをXML形式で保存するMozillafirefoxアドオンを使用してこれを回避する方法があります。このアドオンは、すべてのドメインからのCookieを保存し、Webドライバーを使用してアクセスできます。

実装の詳細については、次のブログを参照してください:http: //automationoverflow.blogspot.in/2013/07/getting-cookies-from-all-domains.html

この回答が役に立ったら、投票することを忘れないでください。

于 2013-08-30T18:42:33.823 に答える
2

すべてのCookie( httpOnlyおよびセキュアCookieを含む)を取得するためにプラグインを使用する必要はありません。ChromeDriverを使用している場合は、ブラウザのプロファイルフォルダからすべてのCookieを取得できます。

それらは./profile/Default/Cookiesのsqliteデータベースファイルに保存されます

java / seleniumの例:

//set Browsers profile folder with ChromeOptions:

String intendedProfileDestinationPath = "C:/temp/somefolder";
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir="+intendedProfileDestinationPath);
WebDriver driver = new ChromeDriver(options);

//...visit one or more pages...    

//use sqlite to access file:

try {
  // db parameters
  String url = "jdbc:sqlite:"+pathToSqliteCookiesFile;
  // create a connection to the database
  conn = DriverManager.getConnection(url);
} catch (SQLException e) {
  System.out.println(e.getMessage());
}
String sql = "SELECT * FROM cookies";
ResultSet result = conn.createStatement().executeQuery(sql);
//... iterate resultset ...

Maven経由でsqliteドライバーを入手します。

<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.28.0</version>
</dependency>

アクセスしたページのCookieのみが必要な場合は、Seleniumブラウザーを再起動するときに、フォルダーの内容全体を削除してください。

于 2019-12-06T16:20:37.393 に答える