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"]')))
我正在尝试自动登录网站 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"]')))