Heim > Java > javaLernprogramm > Wie interagiere ich mit Chromes „Clear Browsing Data'-Shadow-DOM-Elementen mithilfe von Selenium?

Wie interagiere ich mit Chromes „Clear Browsing Data'-Shadow-DOM-Elementen mithilfe von Selenium?

Mary-Kate Olsen
Freigeben: 2024-12-28 01:20:15
Original
466 Leute haben es durchsucht

How to Interact with Chrome's

So finden Sie Elemente im Shadow-DOM (#shadow-root) beim Löschen der Browserdaten des Chrome-Browsers mithilfe von cssSelector

Bei der Interaktion mit Shadow Wenn Sie DOM-Elemente im Chrome-Popup „Browserdaten löschen“ verwenden, müssen Sie unbedingt zuerst das Element #shadow-root finden. Bei zahlreichen Versuchen mit Selenium sind Fehler aufgetreten.

Lösung:

Um diese Fehler zu beheben, folgen Sie dem folgenden JavaScript-Code, um das #shadow-root-Element zu finden:

return document.querySelector('settings-ui').shadowRoot.querySelector('settings-main').shadowRoot.querySelector('settings-basic-page').shadowRoot.querySelector('settings-section > settings-privacy-page').shadowRoot.querySelector('settings-clear-browsing-data-dialog').shadowRoot.querySelector('#clearBrowsingDataDialog').querySelector('#clearBrowsingDataConfirm')
Nach dem Login kopieren

Erklärung:

  • Selen tut es Unterstützt nicht explizit Interaktionen mit Shadow-DOM-Elementen.
  • Um auf Shadow-DOM-Elemente zuzugreifen, identifizieren Sie zunächst den Shadow-Host.
  • Definieren Sie eine Methode, getShadowElement, um den Shadow-Root basierend auf dem Shadow-Host zu erhalten.
  • Verwenden Sie die Methode, um das Element im Schattenbaum zu finden.
  • Der bereitgestellte Code ist ein JavaScript-Snippet, das direkt lokalisiert das gewünschte Element, ohne dass mehrere Shadow-DOM-Durchquerungen erforderlich sind.

Beispielskript:

driver.get("chrome://settings/clearBrowserData");
driver.manage().window().maximize();
JavascriptExecutor js = (JavascriptExecutor) driver; 
WebElement clearData = (WebElement) js.executeScript("return document.querySelector('settings-ui').shadowRoot.querySelector('settings-main').shadowRoot.querySelector('settings-basic-page').shadowRoot.querySelector('settings-section > settings-privacy-page').shadowRoot.querySelector('settings-clear-browsing-data-dialog').shadowRoot.querySelector('#clearBrowsingDataDialog').querySelector('#clearBrowsingDataConfirm')");
// perform the desired action on the clearData element
clearData.click();
Nach dem Login kopieren

Hinweis:

Der im Quelltext der Antwort bereitgestellte Screenshot ist aufgrund von Markdown-Einschränkungen nicht in dieser Antwort enthalten.

Das obige ist der detaillierte Inhalt vonWie interagiere ich mit Chromes „Clear Browsing Data'-Shadow-DOM-Elementen mithilfe von Selenium?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage