You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python3+Selenium中等待手动输入5位验证码后自动点击登录按钮

解决方案:等待手动输入验证码后自动点击登录

没问题,我来帮你实现这个需求——等你手动在验证码输入框输入5个字符后,自动触发登录按钮的点击。关键就是用WebDriverWait配合自定义的等待条件,检查输入框的内容长度是否达标。

完整代码示例

首先确保你导入了必要的模块,然后修改你的代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

# 初始化浏览器驱动(根据你用的浏览器调整,比如Chrome/Firefox)
driver = webdriver.Chrome()
driver.get("你的登录页面URL")

# 输入用户名和密码
driver.find_element(By.ID, "Username").send_keys('user')
driver.find_element(By.ID, "Password").send_keys('pwd')

# 等待验证码输入框的内容长度达到5个字符(超时时间设为30秒,足够你手动输入)
WebDriverWait(driver, 30).until(
    lambda driver: len(driver.find_element(By.ID, "login_captcha").get_attribute('value')) == 5
)

# 验证码输入完成后,自动点击登录按钮
driver.find_element(By.NAME, "button").click()

代码说明

  • 自定义等待条件:这里用lambda表达式创建了一个自定义的等待逻辑——每隔一段时间检查验证码输入框的value属性(也就是你输入的内容)的长度,当长度等于5时,等待结束,继续执行后续代码。
  • 超时时间设置:把WebDriverWait的超时时间设为30秒(你可以根据自己的输入速度调整),给你足够的时间手动输入验证码,不会因为输入慢而触发超时错误。
  • 新元素定位方式:我把旧的find_element_by_id换成了find_element(By.ID, ...),因为旧方法已经被Selenium官方弃用,新方式更规范且兼容最新版本。

这样一来,你只需要在代码运行到等待步骤时,手动在验证码框输入5个字符,代码就会自动检测到并点击登录按钮啦~

内容的提问来源于stack exchange,提问作者Rai Rz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:53:56