Chromedriver + Selenium无法发送's'键

问题描述 投票:0回答:1

使用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,结果相同。有人遇到过这个问题吗?我该怎么办?

python selenium google-chrome selenium-chromedriver
1个回答
0
投票

当您尝试识别密码字段并随后发送字符序列时,可能正在进行某些JavaScriptAJAX调用。因此,问题。


解决方案

要定位并发送字符序列到元素,您必须为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
    
© www.soinside.com 2019 - 2024. All rights reserved.