码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 自动化测试项目实战笔记(四):测试用户登录(账号密码错误,成功,出现弹框等情况)


    相关文章

    自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
    自动化测试项目实战笔记(二):解决验证码识别问题
    自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
    自动化测试项目实战笔记(四):测试用户登录(账号密码错误,成功,出现弹框等情况)

    文章目录

    • 测试步骤
    • 具体代码实现
    • 结果显示
    • 难点

    测试步骤

    • 指明测试网址:http://localhost:8080/jpress/user/login
    • 通过Selemium的get函数发起HTTP请求,进入此网址
    • 通过maximize_window扩充整个屏幕
    • 通过id、name、xpath、class_name来定位目标位置,用于实现包括输入信息,点击信息等操作
    • 如果注册出错会出现弹窗,弹窗我们可以使用WebDriverWait…until来显示等待来捕捉弹框的出现,使用的是expected_conditions.alert_is_present来等待查看,捕捉弹窗通过switch_to.alert来获取弹窗警告
    • 获取之后可以通过assert断言来检测弹窗是否符合预期,后可通过accept来使得弹窗消失。
    • 如果用户名和密码成功则需要进一步判断下一个界面的标题是否为正确

    具体代码实现

    from time import sleep
    from selenium import webdriver # 驱动
    from selenium.webdriver.support import expected_conditions as EC # 期望等待条件的出现
    from selenium.webdriver.support.wait import WebDriverWait # 在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在(显示等待)
    from util import utils
    
    class TestUserRegister(object):
        def __init__(self):
            self.driver = webdriver.Edge("drivers/msedgedriver.exe")
            self.driver.get("http://localhost:8080/jpress/user/login")
            self.driver.maximize_window()
    
        # 测试用户登录,用户名错误
        def test_login_code_error(self):
            # 用户名为空
            user = ""
            pwd = "123456"
            expected = "账号不能为空"
    
            self.driver.find_element_by_name("user").send_keys(user)
            self.driver.find_element_by_name("pwd").send_keys(pwd)
            self.driver.find_element_by_class_name("btn").click()
    
            # 等待提示框 WebDriverWait等待5秒直到弹框出现,不然会报错
            WebDriverWait(self.driver, 5).until(EC.alert_is_present())
            alert = self.driver.switch_to.alert # 获取弹窗警告
            sleep(3)
            assert alert.text == expected
            alert.accept() # 弹窗消失
            print("测试用户登录,用户名错误, user{}-pwd{} 测试,返回结果为{}".format(user,pwd,expected))
    
        # 测试登录成功
        def test_login_code_ok(self):
            # 用户名为空
            user = "admin"
            pwd = "123456"
            expected = "用户中心"
    
            self.driver.find_element_by_name("user").clear()
            self.driver.find_element_by_name("user").send_keys(user)
            self.driver.find_element_by_name("pwd").clear()
            self.driver.find_element_by_name("pwd").send_keys(pwd)
            self.driver.find_element_by_class_name("btn").click()
    
            # 等待提示框 WebDriverWait等待5秒直到弹框出现,不然会报错
            WebDriverWait(self.driver, 5).until(EC.title_is(expected))
    
            sleep(3)
            # 因为弹框已经消失所以我们要断言到标题中心
            assert self.driver.title == expected
            self.driver.quit() # 退出
            print("测试登录成功, user{}-pwd{} 测试,返回结果为{}".format(user,pwd,expected))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    结果显示

    在这里插入图片描述
    在这里插入图片描述

    难点

    • 这里需要注意一个地方,由于登录成功之后没有弹窗的,所以不需要使用EC.alert_is_present,这里需要使用EC.title_is来判定标题的中心是什么。
  • 相关阅读:
    Redis 集群搭建教程
    Python实战项目:俄罗斯方块(源码分享)(文章较短,直接上代码)
    在idea命令行,or linux 终端执行命令,快速获取通过脚本上证指数、创业板实时行情
    Abbkine ExKine 总蛋白提取试剂盒实验建议&FAQ
    linux基本命令之系统管理命令
    NPU架构与算力分析
    【数据结构】C++实现哈希表
    【系统设计与实现】智慧教室在线监考系统,实时视频推理(vue前端+java管理后台+cpp深度学习算法后台)
    计算机组成原理知识总结(七)外围设备
    TypeScrtpt学习
  • 原文地址:https://blog.csdn.net/m0_51004308/article/details/127454358
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号