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

如何使用Python+Selenium自动填充表单中的手机号码字段

解决方案

你只需要新增手机号文件读取逻辑即可,具体操作和修改后的代码如下:

前置准备

  • 在代码同级目录创建phones.txt文件,每行写入一个有效手机号,不要留多余空行或空格。

代码修改说明

  1. 所有通过readlines()读取的文本都需要调用.strip()方法,去除每行末尾自带的换行符,避免填入表单时出现多余字符导致校验失败
  2. 推荐使用with上下文管理器读取文件,避免文件句柄泄漏
  3. 手机号字段替换为从phones.txt随机读取的内容

修改后完整代码

import time
import random
from selenium import webdriver

# 注意Windows路径加r前缀避免转义问题
browser = webdriver.Firefox(executable_path = r'C:\Program Files\geckodriver-v0.30.0\geckodriver.exe')
browser.get("http://nrpgov.ru/")

xpath = '/html/body/form/div[4]/div/div/div/div[4]/div[1]/div[2]/a'
browser.find_element_by_xpath(xpath).click()

# 读取姓氏
surname_xpath = '/html/body/form/div[7]/div/div/div[2]/div/div/table/tbody/tr[1]/td/table/tbody/tr/td[2]/table/tbody/tr[1]/td/table/tbody/tr/td/input'
with open('surnames.txt', encoding='utf-8') as f:
    lastname = [line.strip() for line in f.readlines() if line.strip()]
browser.find_element_by_xpath(surname_xpath).send_keys(random.choice(lastname))

# 读取名字
name_xpath = '/html/body/form/div[7]/div/div/div[2]/div/div/table/tbody/tr[2]/td/table/tbody/tr/td[2]/table/tbody/tr[1]/td/table/tbody/tr/td/input'
with open('boys.txt', encoding='utf-8') as f:
    names = [line.strip() for line in f.readlines() if line.strip()]
browser.find_element_by_xpath(name_xpath).send_keys(random.choice(names))

# 生成TIN号
inn_xpath = '/html/body/form/div[7]/div/div/div[2]/div/div/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[1]/td/table/tbody/tr/td/input'
inn_random = random.randint(1000000000, 9999999999)
browser.find_element_by_xpath(inn_xpath).send_keys(str(inn_random))

# 读取手机号
number_xpath = '/html/body/form/div[7]/div/div/div[2]/div/div/table/tbody/tr[5]/td/table/tbody/tr/td[2]/table/tbody/tr[1]/td/table/tbody/tr/td/input'
with open('phones.txt', encoding='utf-8') as f:
    phones = [line.strip() for line in f.readlines() if line.strip()]
browser.find_element_by_xpath(number_xpath).send_keys(random.choice(phones))

# 读取邮箱
email_xpath = '/html/body/form/div[7]/div/div/div[2]/div/div/table/tbody/tr[6]/td/table/tbody/tr/td[2]/table/tbody/tr[1]/td/table/tbody/tr/td/input'
with open('mails.txt', encoding='utf-8') as f:
    mails = [line.strip() for line in f.readlines() if line.strip()]
browser.find_element_by_xpath(email_xpath).send_keys(random.choice(mails))

send_xpath = '/html/body/form/div[7]/div/div/div[3]/div/div/span'
browser.find_element_by_xpath(send_xpath).click()

额外注意事项

  • 如果你使用的是selenium 4.0及以上版本,find_element_by_xpath方法已被弃用,可以替换为browser.find_element(By.XPATH, xpath),使用前需要先导入from selenium.webdriver.common.by import By
  • 若点击提交后无反应,可以在点击前加少量延时time.sleep(1)避免页面还未加载完成就执行操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:54:00