Wieso findet mein Programm die Cookies nicht(Java, Selenium)?

1 Antwort

Cookies sind keine HTML-Elemente, die man im DOM finden, noch auf der grafischen Oberfläche anklicken könnte.

Über die WebDriver.Options kannst du auf Cookies zugreifen.

Cookie cookieByName = driver.manage().getCookieNamed("cookie name");
Set<Cookie> allCookies = driver.manage().getCookies();

Weiteres zur Bearbeitung von Cookies via Selenium (Hinzufügen, Entfernen) wird in der Dokumentation aufgeführt.


Cookie597 
Beitragsersteller
 14.11.2023, 15:29

Das "cookie name" kann ich das beliebig nennen oder muss das irgendwie aus der website rausgenommen werden?

regex9  14.11.2023, 15:49
@Cookie597

Das ist der Name des Cookies, welches ausgelesen werden soll. Wenn du nach einem Cookie suchst, dass es nicht gibt, bekommst du null zurück.

Cookie597 
Beitragsersteller
 14.11.2023, 15:52
@regex9

okay, hab die unten beschriebenen infos ausgelesen und ausgegeben, aber ich will ja das das alle akzeptieren/ablehnen weg ist damit ich auf die Hauptseite

TPU=DJJL7UAVANU85PJC6N4ETY3RA3GUERGU; expires=Di., 21 Nov. 2023 03:50:15 MEZ; path=/; domain=phase-6.;secure;; sameSite=Lax

JSESSIONID=EC6ABBC03B8FAA8449A0D2FD0DFCD9DB; path=/; domain=.phase-6.;secure;; sameSite=Lax

zugreifen kann, verstehst du ungefähr was ich meine?

Also welche cookies muss ich mit

driver.manage().addCookies();

hinzufügen damit das passiert

regex9  14.11.2023, 16:26
@Cookie597
  1. Geh in einem Browser auf die Webseite.
  2. Öffne die Webentwicklungstools. In Brave/Chrome/Opera gibt es dort den Tab Application, in Firefox heißt er Web-Speicher. Unter diesem findest du in der linken Seitenleiste einen aufklappbaren Knoten Cookies. Selektiere dessen Subknoten, der den Domainnamen der Webseite trägt.
  3. Auf der rechten Seite werden anschließend alle aktuellen Cookies der Seite aufgelistet.
  4. Wenn du nun den Cookie-Popup bestätigst, die Seite neu lädst und erneut in die Cookie-Liste schaust, werden neue Cookies hinzugekommen sein. Einer von denen speichert sicherlich die Cookie-Bestätigung. Schau nach dem Namen, meist haben solche Cookies Wörter wie accepted oder consent im Namen. Andernfalls kannst du je Cookie in der Liste prüfen, was passiert, wenn er gelöscht wird (Löschen > Seite neu laden > Wird der Cookie-Popup wieder angezeigt?).

Wenn die Information in keinem Cookie gespeichert wird, liegt sie im Web Storage. Im Application-/Web-Speicher-Tab gibt es dafür die Knoten Local Storage/Session Storage.

Mit Selenium kannst du auch den Web Storage manipulieren.

Beispiel:

JavascriptExecutor executor = (JavascriptExecutor) driver;  
executor.executeScript("localStorage.setItem(arguments[0], arguments[1])", "key to add/edit", "some value"));