当前位置: 首页 > news >正文

selenium自动化测试工具实战项目(登录页面)

  • 介绍
    • 测试的系统:白月黑羽网站的测试系统(白月SMS系统)
    • 测试的功能:登录,退出登录。
  • 测试用例
    用例编号测试模块前置条件测试步骤预期结果实际结果
    Login_01登录功能已注册1.输入正确的用户名,输入错误的密码。2.点击登录登录不成功登录不成功,并且有相应的提示
    Login_02登录功能已注册1.输入错误的用户名,输入正确的密码。2.点击登录登录不成功登录不成功,并且有相应的提示
    Login_03登录功能已注册1.输入错误的用户名和错误的密码。2.点击登录登录不成功登录不成功,并且有相应的提示
    Login_04登录功能已注册1.输入正确的用户名和正确的密码。2.点击登录登录成功登录成功
    LogOut-01退出登录已登录1.点击退出登录按钮退出登录退出登录成功

    由于【白月SMS系统】是做练习的系统,所以登录功能比较简单,如果平常写自动化程序,要根据实际的系统去写相应的测试用例,进行自动化测试。

  • 安装 selenium
    pip install selenium
  • 自动化测试程序
    fromseleniumimportwebdriverfromtimeimportsleepfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.common.exceptionsimportNoAlertPresentExceptionfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.common.exceptionsimportTimeoutExceptionclassLoginTest:def__init__(self):self.driver=webdriver.Chrome()defOpenChrome(self):self.driver.get('http://127.0.0.1/mgr/sign.html')sleep(2)defLoginTest(self):try:userNameList=['byhy','byh','byh','byhy']PassWordList=['8888888','88888888','99999999','88888888']number=0whilenumber<=4:foru,pinzip(userNameList,PassWordList):# 最多等 10 秒,直到元素出现在 DOMuserNameElement=WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.ID,'username')))# userNameElement = self.driver.find_element(By.ID, 'username')userNameElement.send_keys(Keys.CONTROL+"a")# 全选userNameElement.send_keys(f'{u}')# 覆盖新内容sleep(2)PassWordElement=WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.ID,'password')))# PassWordElement = self.driver.find_element(By.ID, 'password')PassWordElement.send_keys(Keys.CONTROL+"a")PassWordElement.send_keys(f'{p}')sleep(2)# 点击登录按钮SubmitElement=self.driver.find_element(By.XPATH,"//div[@class='col-xs-12']/button")SubmitElement.click()sleep(3)# Confirm 弹窗try:Confirm=self.driver.switch_to.alertprint('登录失败提示语 ——> ',Confirm.text)Confirm.accept()sleep(3)exceptNoAlertPresentException:print("当前没有 alert,跳过处理")continueexceptExceptionase:print('error:',e)defLogOutTest(self):try:# 例:退出按钮、用户昵称、头像……userAvatarElement=self.driver.find_element(By.XPATH,'//div[@class="navbar-custom-menu"]/ul/li[2]/a')userAvatarElement.click()sleep(2)logOutElement=self.driver.find_element(By.XPATH,'//div[@class="pull-right"]/a')logOutElement.click()sleep(2)print('退出登录成功!!!!!')exceptTimeoutException:print('退出登录失败')defcloseChrome(self):print("登录页面自动化测试完毕~")self.driver.close()if__name__=='__main__':lt=LoginTest()lt.OpenChrome()lt.LoginTest()lt.LogOutTest()lt.closeChrome()
http://www.jsqmd.com/news/299365/

相关文章:

  • 字体反爬分析
  • JS加密算法
  • Leetcode 剑指 Offer II 159. 库存管理 III
  • 把3D人物模型导入Unity,并给头发衣服附加重力
  • Spring AOP和AspectJ的区别
  • 盒马鲜生礼品卡回收平台实测,京顺回收成行业优选
  • 外包干了9天,技巧退步明显。。。。。
  • 我们和钱的关系,其实早被财富量级定好了
  • 人生的本质是交换:成事的终极公式:极致专注+灵活交换=一切皆可行
  • 31岁仍被说幼稚:上班最狠的PUA是让我们盼着自己变老
  • AI也会“断片”?换个提问顺序,大模型直接变“差生”
  • AI版“马后炮”?大模型的「因果注意力」到底是啥?
  • 真正决定你成长速度的,从来不是你“经历了什么”,而是你“反思透了什么”
  • 学长亲荐!专科生毕业论文必备!8款一键生成论文工具TOP8测评
  • 你看到的人不舒服,就是不好,远离就行,或者不说话不表态:你是世界和核心,没有你,世界将不在存在
  • 别再乱用 `enum` 了!聊聊 C++ 类里枚举的“坑”与“真香”定律
  • 基于51单片机wifi烟雾温湿度检测 无线物联网 火灾报警系统diy
  • 过年和父母吵到沉默才懂:我花了20年,终于“背叛”了他们的人生; 家族第一个博士:撕开阶层的口子,带家人杀出重围
  • STM32单片机车载酒精检测 防酒驾系统 酒精报警器套件GSM
  • 基于32单片机气体监测系统PM2..5烟雾甲醛 温湿度WIFI传输APP显示
  • 基于51单片机 智能鞋柜 语音识别 杀菌消毒无线控制DIY成品
  • 基于51单片机CO2浓度 温室大棚 二氧化碳检测
  • 基于51单片机GPS的公交车自动报站系统GPS自动报站器检测系统DIY
  • 多模态-2 CLIP
  • stm32单片机智能浇花浇水土壤湿度光照检测远程控制系统设计成品
  • 国货基金组织格奥尔基耶娃解读-万祥军| 世界经济论坛·国际科学院组织
  • LLM生成文本每次是把之前所有的token都输入,还是只输入上一个token?
  • 《2026全球合作晴雨表》解读-万祥军| 世界经济论坛·国际科学院组织
  • 世界经济论坛总裁博尔格·布伦德闭幕式讲话-万祥军| 国际科学院组织
  • 越疆科技转化应用调研考察解读-万祥军| 国研智库·中国国政研究