我正在尝试使用selenium登录discover card网站。此脚本将用于自动下载语句。
但是,我的功能适用于大多数网站,但不适用于发现卡登录表单。我的函数找到登录按钮(id为“ log-in-button
)但selenium随后失败并出现错误” element not interactable
."
这是我的小功能。
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
def login_by_id(username, password, username_id, password_id, login_button_id, driver):
# wait for form to be visible to Selenium
username_input = WebDriverWait(driver, 5).until(lambda x: x.find_element(By.ID, username_id))
# fill in form
username_input.send_keys(username)
password_input = driver.find_element_by_id(password_id)
password_input.send_keys(password)
# click on login button
login_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, login_button_id)))
login_button.click()
2条答案
按热度按时间3df52oht1#
该页面上有两个id为“登录按钮”的元素。
如果您试图在模态隐藏时与模态中的一个进行交互,则会导致此类错误。
模式窗口的代码出现在默认登录框的代码之前,因此它首先找到隐藏的代码是有意义的。
你可以试试这些
puruo6ea2#
我尝试使用以下代码登录您共享的网站url,似乎效果良好:
进口: