【发布时间】:2020-04-15 20:33:03
【问题描述】:
基本上,我想访问一个出现在打印预览弹出窗口中的按钮,这是一个影子 dom 元素。我尝试了一些在 stackoverflow 周围找到的解决方案,但它们不起作用,就像我试图构建的当前代码一样:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
def expand_shadow_root(element):
shadow_root = driver.execute_script("return arguments[0].shadowRoot", element)
return shadow_root
root1 = driver.find_element_by_tag_name("print-preview-button-strip")
shadow_root1 = expand_shadow_root(root1)
btn = shadow_root1.find_element_by_xpath("/html/body/print-preview-app//print-preview-sidebar//print-
preview-button-strip//cr-button[1]")
wait.until((EC.element_to_be_clickable(By.XPATH,"/html/body/print-preview-app//print-preview-
sidebar//print-preview-button-strip//cr-button[1]")))
btn.click()
【问题讨论】:
标签: python selenium automation shadow-dom