Discord自动注册中出生日期下拉框无法定位点击的问题求助
解决Discord注册脚本的日期下拉框选择问题
问题根源
Discord注册页面的日期选择控件并非原生HTML <select> 下拉框,而是前端自定义的UI组件。你原代码中直接查找<option>标签的方式无效,因为这些原生选项元素处于隐藏状态,实际交互的是自定义的列表项。
修正方案
针对Discord的自定义日期选择组件,需按以下逻辑操作:
- 点击对应月份/日期/年份的触发按钮,展开下拉面板
- 等待自定义选项列表加载完成
- 通过文本定位目标选项并点击
修改后的代码片段(替换原日期选择部分)
# 处理月份选择(示例选May) month_trigger = driver.find_element(By.CLASS_NAME, "month-1Z2bRu") month_trigger.click() target_month = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'option-2KkUJO') and text()='May']")) ) target_month.click() # 处理日期选择(示例选15日) day_trigger = driver.find_element(By.CLASS_NAME, "day-3V7XNc") day_trigger.click() target_day = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'option-2KkUJO') and text()='15']")) ) target_day.click() # 处理年份选择(示例选2000年) year_trigger = driver.find_element(By.CLASS_NAME, "year-2YrOwr") year_trigger.click() target_year = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'option-2KkUJO') and text()='2000']")) ) target_year.click()
额外提示
- 若Discord后续更新组件类名,需通过浏览器开发者工具(F12)重新获取最新的元素类名
- 优先使用
WebDriverWait结合预期条件等待元素,避免依赖固定时长的sleep(),提升脚本稳定性
内容的提问来源于stack exchange,提问作者Kira
相关产品推荐
相关产品推荐

