Rumah > Java > javaTutorial > Bagaimana untuk Berinteraksi dengan Elemen Shadow DOM 'Kosongkan Data Penyemakan Imbas' Chrome Menggunakan Selenium?

Bagaimana untuk Berinteraksi dengan Elemen Shadow DOM 'Kosongkan Data Penyemakan Imbas' Chrome Menggunakan Selenium?

Mary-Kate Olsen
Lepaskan: 2024-12-28 01:20:15
asal
439 orang telah melayarinya

How to Interact with Chrome's

Cara Mengesan Elemen dalam Shadow DOM (#shadow-root) Semasa Mengosongkan Data Semak Imbas Penyemak Imbas Chrome Menggunakan cssSelector

Semasa berinteraksi dengan Shadow Elemen DOM dalam pop timbul "Clear Browsing Data" Chrome, adalah penting untuk mencari elemen #shadow-root pertama. Banyak percubaan menggunakan Selenium telah mengalami ralat.

Penyelesaian:

Untuk mengatasi ralat ini, ikuti kod JavaScript di bawah untuk mencari #shadow-root elemen:

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')
Salin selepas log masuk

Penjelasan:

  • Selenium tidak secara jelas menyokong interaksi dengan elemen Shadow DOM.
  • Untuk mengakses elemen Shadow DOM , mula-mula kenal pasti Hos Bayangan.
  • Tentukan kaedah, dapatkanShadowElement, untuk mendapatkan Shadow Root berdasarkan Shadow Host.
  • Gunakan kaedah untuk mencari elemen dalam Shadow Tree.
  • Kod yang disediakan ialah coretan JavaScript yang mengesan secara langsung elemen yang dikehendaki tanpa memerlukan berbilang Shadow DOM traversals.

Contoh Skrip:

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();
Salin selepas log masuk

Nota:

Tangkapan skrin yang disediakan dalam teks sumber jawapan tidak disertakan dalam respons ini kerana pengehadan penurunan nilai.

Atas ialah kandungan terperinci Bagaimana untuk Berinteraksi dengan Elemen Shadow DOM 'Kosongkan Data Penyemakan Imbas' Chrome Menggunakan Selenium?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan