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

使用Python Selenium自动注册Discord账号时日期选择问题咨询

解决Discord注册页日期选择的自动填充问题

Got it, let's tackle that date picker issue on Discord's registration page. Since it uses dropdown components instead of regular input fields, send_keys() won't work here—here are three reliable approaches to automate this:

方法1:使用Selenium的Select类(标准下拉框首选)

Discord的日期选择器大概率是标准的<select>标签,这时候用Selenium内置的Select类是最规范的做法。首先需要导入这个类,然后定位到年、月、日的下拉元素并选择对应值:

from selenium.webdriver.support.ui import Select

# 处理年份选择
year_select = Select(driver.find_element_by_xpath("//select[@aria-label='Year']"))
year_select.select_by_value("2000")  # 替换为目标年份的value值

# 处理月份选择(支持按可见文本或value值选择)
month_select = Select(driver.find_element_by_xpath("//select[@aria-label='Month']"))
month_select.select_by_visible_text("January")  # 或者用select_by_value("1")

# 处理日期选择
day_select = Select(driver.find_element_by_xpath("//select[@aria-label='Day']"))
day_select.select_by_value("15")

方法2:直接定位选项并点击(自定义下拉框适用)

如果日期选择器是自定义的非标准下拉组件(比如用div模拟的),你需要先点击下拉框展开选项列表,再点击目标选项:

# 展开年份下拉框并选择2000年
driver.find_element_by_xpath("//div[@aria-label='Year']").click()
driver.find_element_by_xpath("//div[text()='2000']").click()

# 展开月份下拉框并选择January
driver.find_element_by_xpath("//div[@aria-label='Month']").click()
driver.find_element_by_xpath("//div[text()='January']").click()

# 展开日期下拉框并选择15号
driver.find_element_by_xpath("//div[@aria-label='Day']").click()
driver.find_element_by_xpath("//div[text()='15']").click()

方法3:用JavaScript直接设置值(快速绕过交互)

如果前两种方法都遇到问题,还可以通过执行JavaScript直接修改下拉框的value属性,这种方式不需要模拟点击交互:

# 设置年份为2000
driver.execute_script("document.querySelector('select[aria-label=\"Year\"]').value = '2000';")
# 设置月份为1月(value值为1)
driver.execute_script("document.querySelector('select[aria-label=\"Month\"]').value = '1';")
# 设置日期为15号
driver.execute_script("document.querySelector('select[aria-label=\"Day\"]').value = '15';")

额外提示:优化你的元素定位

你当前代码里用的class属性(比如inputDefault-_djjkz)是Discord动态生成的,很容易失效。建议改用更稳定的属性,比如aria-label或type:

# 优化后的邮箱填充
driver.find_element_by_xpath("//input[@type='email' and @aria-label='Email']").send_keys(mail)
# 优化后的用户名填充
driver.find_element_by_xpath("//input[@type='text' and @aria-label='Username']").send_keys(name)
# 优化后的密码填充
driver.find_element_by_xpath("//input[@type='password' and @aria-label='Password']").send_keys(name)

内容的提问来源于stack exchange,提问作者Никита Давыдов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:02:49