Python+Selenium实现随机手机号生成与重复提示检测
本文介绍如何使用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随机生成手机验证码并检查页面重复提示的实现方法已介绍完毕。如需了解更多相关技术细节或查看历史文章,请继续浏览本站内容。感谢支持,希望本文能为您的开发工作提供帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









