如何按类路径选择元素(SELENIUM、PYTHON)

kgsdhlau  于 2022-11-24  发布在  Python
关注(0)|答案(1)|浏览(125)

I尝试选择此路径但不起作用,

chrome_options = Options()
caps = DesiredCapabilities().CHROME
caps["pageLoadStrategy"] = "eager"  # interactive
#chrome_options.add_argument("--headless")
driver = uc.Chrome(options=chrome_options, desired_capabilities=caps)
driver.get('https://www.santander.com.br/emprestimo/login')
time.sleep(5)
driver.find_element(By.CSS_SELECTOR, 'input#cpf.my-4.ng-pristine.ng-invalid.dss-form-field__input.ng-touched').send_keys(cpf)

试过了,
输入的是一个字符串,它是一个字符串,它是一个字符串的一部分,它是一个字符串的一部分。

cgh8pdjw

cgh8pdjw1#

您尝试选择的字段位于Shadow DOM中。使用Chrome和Selenium 4访问这些元素非常简单:

shadow_host = driver.find_element(By.TAG_NAME, "pdc-juc-root")
shadow_root = shadow_host.shadow_root
input = shadow_root.find_element(By.ID, "cpf")
action = webdriver.ActionChains(driver)
action.move_to_element(input).click().send_keys("123456789").perform()
# delay before closing so can see that it works!
time.sleep(3)

相关问题