使用Python 3.7.4,Selenium 3.141.0,Chromedriver 78和Chrome 78。
我正在尝试自动登录到网页,但是当我以表单的形式向输入发送键时,它会发送除's'字母以外的所有字符。
input = form_element.find_element_by_xpath(password_xpath)
input.send_keys("password")
它只写“ paword”。我在其他查询中也看到过此问题,但Chromedriver版本过旧。我也尝试使用“ \ s”,但它写为“ \”。
找不到任何相关文档。我尝试使用Chrome 77 + Chromedriver 77,结果相同。有人遇到过这个问题吗?我该怎么办?
当您尝试识别密码字段并随后发送字符序列时,可能正在进行某些JavaScript或AJAX调用。因此,问题。
要定位并发送字符序列到元素,您必须为element_to_be_clickable()
引入WebDriverWait,并且可以使用以下任一解决方案:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "password_css"))).send_keys("password")
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "password_xpath"))).send_keys("password")
注:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC