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

如何使用Selenium/Python向指定HTML输入框输入文本?

Selenium 定位mail.com注册输入框并输入文本的方法

Selenium 4及以上版本已经废弃了find_element_by_xpath等旧API,统一使用find_element()方法结合By类来定位元素。针对你提供的mail.com注册页输入框,以下是几种可靠的定位及输入文本的代码示例:

推荐定位方式(优先使用)

利用元素的data-test属性定位,这类属性是专为自动化测试设计的,稳定性最高:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化Chrome驱动(需确保已配置好驱动路径)
driver = webdriver.Chrome()
driver.get("https://signup.mail.com/#.7518-header-signup1-1")

# 定位输入框
email_input = driver.find_element(By.CSS_SELECTOR, '[data-test="check-email-availability-email-input"]')
# 输入文本
email_input.send_keys("my_test_email_prefix")

也可以用XPATH语法实现同样的定位:

email_input = driver.find_element(By.XPATH, '//input[@data-test="check-email-availability-email-input"]')

其他可选定位方式

通过formcontrolname属性定位

email_input = driver.find_element(By.CSS_SELECTOR, '[formcontrolname="alias"]')
# 或XPATH
email_input = driver.find_element(By.XPATH, '//input[@formcontrolname="alias"]')
email_input.send_keys("my_test_email_prefix")

处理页面加载延迟

新手常遇到“元素未找到”的错误,大多是因为页面还没加载完成。可以用显式等待确保元素加载后再操作:

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

driver = webdriver.Chrome()
driver.get("https://signup.mail.com/#.7518-header-signup1-1")

# 最长等待10秒,直到输入框出现
email_input = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '[data-test="check-email-availability-email-input"]'))
)
email_input.send_keys("my_test_email_prefix")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:15:34