selenium+python自动化测试--登录

前言:已经学习selenium许久了,奈何公司的项目还在码代码中…,感觉自己学的东西快忘的差不多了,所以就找个网站练练手,顺便回顾一下UI自动化的知识,也希望跟我一样的小白有所受益。

一、用例分析(根据所测网站对应分析)

用例1:

正确输入手机号和密码,点击登录

期望:有帮助中心字样(系统跳至首页后,会有个帮助中心,也可以选择其他字样作为判定,这里不方便截图:)

用例2:

不输入手机号和密码,点击登录

期望:请输入手机号码(提示信息)

用例3:

只输入手机号不输入密码,点击登录

期望:请输入密码(提示信息)

用例4:

只输入密码不输入手机号,点击登录

期望:请输入手机号码(提示信息)

用例5:

输入错误的用户名和密码

期望:账号不存在(提示信息)

。。。。。。

当然,还有测试用例没列举完,比如特殊字符、长度等的校验,由于测试的这个网站没有相关校验(😶无奈。。),所以暂不做介绍。

二、代码编写

登录测试文件:test_klogin.py

import unittest
from selenium import webdriver
import time
from common.base import Base

class TestKlogin(unittest.TestCase):

    #定位手机号
    username = ("name","loginName")
    #定位密码
    psw = ("name","loginPassWord")
    #定位登录按钮
    loginbutton = ("id","loginBtn")
    #定位帮助中心
    help = ("xpath","//*[contains(text(),'帮助中心')]")
    print("help",help)
    #定位提示信息
    message = ("className","toast-message")
    print("message" ,message)

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()
        cls.baselei = Base(cls.driver)

    def setUp(self):
        self.driver.get("url地址")

    def tearDown(self):
        # 清空cookies
        self.driver.delete_all_cookies()
    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()


    def test_01_loginsuccess(self):
        '''正确输入手机号和密码'''
        self.baselei.send(self.username,"13000000000")
        self.baselei.send(self.psw,"666666")
        self.baselei.click(self.loginbutton)
        result1=self.baselei.is_element_exist(self.help)
        self.assertTrue(result1)

    def test_02_bushuru(self):
        '''不输入,点击登录'''
        self.baselei.click(self.loginbutton)
        result2 =self.baselei.find(self.message).text
        print("我是内容test02:",result2)
        exp2 = "请输入手机号码"
        self.assertEqual(result2,exp2)

    def test_03_shuruname(self):
        '''只输入手机号,不输入密码'''
        self.baselei.send(self.username,"12343657")
        self.baselei.click(self.loginbutton)
        result3 = self.baselei.find(self.message).text
        print("我是内容test03:",result3)
        exp3="请输入密码"
        self.assertTrue(result3==exp3)

    def test_04_shurupsw(self):
        '''只输入密码,不输入手机号'''
        self.baselei.send(self.psw,"123465")
        self.baselei.click(self.loginbutton)
        result4 = self.baselei.find(self.message).text
        print("我是内容test04:",result4)
        exp4="请输入手机号码"
        self.assertTrue(result4==exp4)

    def test_05_shurufail(self):
        '''输入错误的账号和密码'''
        self.baselei.send(self.username,"4334668")
        self.baselei.send(self.psw,"325465")
        self.baselei.click(self.loginbutton)
        result5 = self.baselei.find(self.message).text
        print("我是内容test05",result5)
        exp5 = "账号不存在"
        self.assertEqual(result5,exp5)


if __name__ == '__main__':
    unittest.main()

base文件:base.by

复制代码

from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver


class Base():

    def __init__(self,driver):
        self.driver=driver

    def find(self,locator):
        '''locator = ("id","kw"),查找某元素'''
        element = WebDriverWait(self.driver, 10, 1).until(lambda x: x.find_element(*locator))
        return element

    def send(self,locator,text):
        '''输入框传值'''
        self.find(locator).send_keys(text)

    def click(self,locator):
        '''点击事件'''
        self.find(locator).click()

    def is_element_exist(self,locator):
        '''判断元素是否存在'''
        els=self.finds(locator)
        count = len(els) #计算元素个数
        if len(els) < 1:
            return False
        else:
            print("定位到的元素个数:%s"%count)
            return True

三、运行结果

技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。

对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你!

愿你我相遇,皆有所获! 欢迎关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值