Python selenium - 无法捕获并 send_keys 到输入框

Python selenium - Unable to capture and send_keys to the input box

我正在尝试自动登录网站 https://plus.credit-suisse.com。下面的代码将我们带到了应该输入密码的最后一步。

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver = webdriver.Chrome()
driver.maximize_window()

driver.get("https://plus.credit-suisse.com")

wait = WebDriverWait(driver,10)
wait.until(EC.element_to_be_clickable((By.XPATH, '//button[text()="Sign-in"]'))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, '//input[@placeholder="Enter Credit Suisse ID (usually your registered email address)"]'))).send_keys("username")
wait.until(EC.element_to_be_clickable((By.XPATH, '//a[@class="mod_cookie_policy_btn_close"]'))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, '//button[text()="Enter Password to sign-in"]'))).click()

time.sleep(5)

element = wait.until(EC.element_to_be_clickable((By.ID, 'password')))
element.send_keys('password')

wait.until(EC.element_to_be_clickable((By.XPATH, '//button[text()="Login"]'))).click()

现在行

element = wait.until(EC.element_to_be_clickable((By.ID, 'password')))

抛出 TimeoutException。这是最后一步。

我发现此页面有 3 个 ID 为 password 的元素。

最后一个元素是正确的,但 element_to_be_clickable 可能给出第一个。

您可能必须使用 XPath 才能获得正确的

element = wait.until(EC.element_to_be_clickable((By.XPATH, '//div[@class="csplusSecondView"]//input[@id="password"]')))