
Чтобы обойти дерево HTML, я использую следующий код:
Код: Выделить всё
shadow_host_1 = driver.find_element(By.TAG_NAME, 'macroponent-f51912f4c700201072b211d4d8c26010') # You can not see this element in the picture (no space)
shadow_root_1 = shadow_host.shadow_root
shadow_host_2 = shadow_root_1.find_element(By.CSS_SELECTOR, 'sn-canvas-appshell-root[component-id="ftwjgfr-root"]')
shadow_root_2 = shadow_host_2.shadow_root
shadow_host_3 = shadow_root_2.find_element(By.CSS_SELECTOR, 'sn-canvas-appshell-layout[component-id="ftwjgfr-snCanvasAppshellLayout"]')
shadow_root_3 = shadow_host_3.shadow_root
Код: Выделить всё
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"sn-canvas-appshell-layout[component-id="ftwjgf
r-snCanvasAppshellLayout"]"}
Подробнее здесь: https://stackoverflow.com/questions/790 ... and-python