Python+Selenium实现随机手机号生成与重复提示检测

向北走
向北走
发布时间:2026-10-14| 2人浏览过
原创

本文介绍如何使用Python结合Selenium库,通过自定义函数随机生成符合格式的手机验证码号码,并利用XPath定位页面元素来检测是否弹出重复手机号码的提示框。若检测到重复提示,程序将自动重新生成号码直至通过验证,从而简化前端自动化测试中的数据准备流程。

随机生成格式正确的手机号码

首先,需要实现一个能够随机生成格式正确手机号码的函数。该函数旨在模拟真实手机号的前七位号段,并补充后八位数字,确保生成的号码符合常见的手机号长度和格式规范。


# 随机产生格式正确的手机号码
def create_phone(self):
  num_start = ['134', '135', '136', '137', '138', '139', '150', '151', '152', '158', '159', '157', '182', '187', '188', '147', '130', '131', '132', '155', '156', '185', '186', '133', '153', '180', '189']
  start = random.choice(num_start) # 随机从列表中选择一个元素
  end = ''.join(random.sample(string.digits, 8)) # 随机生成8个0-9的字符
  phone_number = start + end
  return phone_number

检测页面重复号码提示

接下来,核心逻辑在于验证生成的号码是否已被使用或导致系统报错。由于直接对比后台数据库效率较低,此处采用前端交互反馈作为判断依据:如果页面上弹出了提示重复手机号码的对话框,则视为号码重复。

具体的检测机制依赖于对页面特定提示元素的监控。当检测到代表重复提示的元素存在且可见时,程序会进入循环状态,不断调用生成函数创建新号码,并清空输入框后填入新号码,直到不再出现重复提示为止。这一过程确保了最终提交的号码在前端逻辑上是唯一的。


# 判断手机号码可不可用,不可用再生成 直到不会出现错误提示,这里的xpath是提示框的
if self.driver.find_element_by_xpath('//*[@id="mobileNumberDiv"]/div[3]/div/div[1]'):
  btn_win = WebDriverWait(self.driver, 4).until(
    lambda d: d.find_element_by_xpath('//*[@id="mobileNumberDiv"]/div[3]/div/div[1]'))
  while btn_win.is_displayed():
    phone_number = self.create_phone()
    self.driver.find_element(By.ID, "mobileNumber").clear()
    self.driver.find_element(By.ID, "mobileNumber").send_keys(self.create_phone())

方案总结与应用场景

通过上述步骤,我们完成了一个基于Python和Selenium的简易手机号生成与重复性检查方案。该方法利用前端UI反馈快速判断数据有效性,避免了后端查询的性能开销,适用于需要大量模拟唯一手机号的前端自动化测试场景。

至此,关于利用Python和Selenium随机生成手机验证码并检查页面重复提示的实现方法已介绍完毕。如需了解更多相关技术细节或查看历史文章,请继续浏览本站内容。感谢支持,希望本文能为您的开发工作提供帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。