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

如何使用Python3+Selenium定位无ID表单的输入框与提交按钮实现登录

问题原因排查

你的现有代码存在几个明显错误:

  • 元素定位顺序颠倒:先找到了密码输入框,却输入了邮箱内容
  • 提交按钮没有设置id="Submit"属性,用ID定位完全无法匹配到元素
  • 用placeholder定位的稳定性远低于元素自带的name属性,很容易因为界面文案修改失效

修正后的可运行代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("http://example.com/")

try:
    # 点击登录跳转链接
    login_link = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.LINK_TEXT, "Login to start working"))
    )
    login_link.click()

    # 定位邮箱输入框并输入内容
    email_input = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.NAME, "email"))
    )
    email_input.clear()
    email_input.send_keys('random@random.com')

    # 定位密码输入框并输入内容
    pwd_input = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.NAME, "password"))
    )
    pwd_input.clear()
    pwd_input.send_keys('你的实际登录密码')

    # 定位提交按钮并点击
    submit_btn = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//button[@type='submit' and contains(text(), 'Sign In')]"))
    )
    submit_btn.click()

except Exception as exc:
    print(f"操作失败: {exc}")
finally:
    # 调试阶段可以注释掉下面这行,方便查看运行后的页面状态
    # driver.quit()
    pass

补充说明

  • 用visibility_of_element_located替代presence_of_element_located,可以确保元素渲染可见后再操作,避免命中隐藏的表单元素
  • 输入前加clear()可以清空输入框默认内容,避免字符串拼接导致的账号密码错误
  • 提交按钮用type属性+按钮文本组合定位,匹配精准度很高,不容易受页面结构调整影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:48:09