Как взаимодействовать с элементами в #shadow-root (open) при очистке данных просмотра браузера Chrome с помощью cssSelecJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как взаимодействовать с элементами в #shadow-root (open) при очистке данных просмотра браузера Chrome с помощью cssSelec

Сообщение Anonymous »

Я следил за дискуссией «Как автоматизировать теневые элементы DOM с помощью селена?» для работы с элементами #shadow-root (open).

В процессе поиска кнопки Очистить данные внутри Всплывающее окно Очистить данные просмотра, которое появляется при доступе к URL-адресу chrome://settings/clearBrowserData через Selenium. Мне не удалось найти следующий элемент:

Код: Выделить всё

#shadow-root (open)

Снимок:

[img]https:// i.sstatic.net/RUUI6.png[/img]


При использовании Selenium приведены мои пробные версии кода и обнаруженные связанные с ними ошибки:
  • Попытка 1:

    Код: Выделить всё

    WebElement root5 = shadow_root4.findElement(By.tagName("settings-privacy-page"));
    

    Ошибка:

    Код: Выделить всё

    Exception in thread "main" org.openqa.selenium.JavascriptException: javascript error: b.getElementsByTagName is not a function
    
[*]Попытка 2:

Код: Выделить всё

WebElement root5 = shadow_root4.findElement(By.cssSelector("settings-privacy-page"));
  • Ошибка:

    Код: Выделить всё

    Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"settings-privacy-page"}
    
[*]Попытка 3:

Код: Выделить всё

WebElement root5 = (WebElement)((JavascriptExecutor)shadow_root4).executeScript("return document.getElementsByTagName('settings-privacy-page')[0]");
  • Ошибка:

    Код: Выделить всё

    Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebElement cannot be cast to org.openqa.selenium.JavascriptExecutor
    

В случае, если это полезно, начальный блок кода (до строка выше) работает отлично:

Код: Выделить всё

driver.get("chrome://settings/clearBrowserData");
WebElement root1 = driver.findElement(By.tagName("settings-ui"));
WebElement shadow_root1 = expand_shadow_element(root1);

WebElement root2 = shadow_root1.findElement(By.cssSelector("settings-main#main"));
WebElement shadow_root2 = expand_shadow_element(root2);

WebElement root3 = shadow_root2.findElement(By.cssSelector("settings-basic-page[role='main']"));
WebElement shadow_root3 = expand_shadow_element(root3);

WebElement root4 = shadow_root3.findElement(By.cssSelector("settings-section[page-title='Privacy and security']"));
WebElement shadow_root4 = expand_shadow_element(root4);
PS:expand_shadow_element() работает безупречно.

Подробнее здесь: https://stackoverflow.com/questions/563 ... aring-brow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как взаимодействовать с Transcend Consent Manager Shadow Dom с помощью селена?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как взаимодействовать с Transcend Consent Manager Shadow Dom с помощью селена?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Есть ли причина использовать css box-shadow вместо drop-shadow?
    Anonymous » » в форуме CSS
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как использовать элемент внутри Shadow-Root с помощью Playwright?
    Anonymous » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • 500 OOPS: VSFTPD: Отказ от запуска с помощью root root внутри chroot () с помощью RPI
    Anonymous » » в форуме Linux
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»