• selenium+python笔记7


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    """
    @desc:       测试126邮箱的登陆功能
    1.使用公共方法public.login
    2.将测试数据放在xml文件中,使用数据驱动(/test_data/login.xml)
    3.这里使用xml.dom.minidom读取xml数据
    """
    import unittest
    import xml.dom.minidom
    import os
    import sys
    from selenium import webdriver
    
    cur_dir = os.getcwd()
    sys.path.append(cur_dir.split(r'	est_case')[0])
    
    from public import login
    
    fpath = cur_dir.split('test_case')[0] + 'test_data' + os.path.sep + 'login.xml'
    
    # 打开 xml 文档
    dom = xml.dom.minidom.parse(fpath)
    
    # 得到文档元素对象
    root = dom.documentElement
    
    
    class TestLogin(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Firefox()
            self.driver.implicitly_wait(30)
            logins = root.getElementsByTagName('url')
            self.base_url = logins[0].firstChild.data
            self.verificationErrors = []
    
        # 用例1:用户名、密码为空
        def test_null(self):
            driver = self.driver
            driver.get(self.base_url)
            # 读取xml中的数据
            logins = root.getElementsByTagName('null')
            # 获得 null 标签的 username、password 属性值
            username = logins[0].getAttribute("username")
            password = logins[0].getAttribute("password")
            prompt_info = logins[0].firstChild.data
            # 登录
            login.login(self, username, password)
            # 获取断言信息进行断言
            text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
            self.assertEqual(text, prompt_info)
    
        # 用例2:用户名为空
        def test_user_null(self):
            driver = self.driver
            driver.get(self.base_url)
            logins = root.getElementsByTagName('user_null')
            # 获得 user_null 标签的 username、passwrod 属性值
            username = logins[0].getAttribute("username")
            password = logins[0].getAttribute("password")
            prompt_info = logins[0].firstChild.data
            # 登录
            login.login(self, username, password)
            # 获取断言信息进行断言
            text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
            self.assertEqual(text, prompt_info)
    
        # 用例3:密码为空
        def test_pwd_null(self):
            driver = self.driver
            driver.get(self.base_url)
            logins = root.getElementsByTagName('pwd_null')
            # 获得 pwd_null 标签的 username、passwrod 属性值
            username = logins[0].getAttribute("username")
            password = logins[0].getAttribute("password")
            prompt_info = logins[0].firstChild.data
            # 登录
            login.login(self, username, password)
            # 获取断言信息进行断言
            text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
            self.assertEqual(text, prompt_info)
    
        # 用例4:错误的用户名和密码
        def test_error(self):
            driver = self.driver
            driver.get(self.base_url)
            logins = root.getElementsByTagName('error')
            # 获得 error 标签的 username、passwrod 属性值
            username = logins[0].getAttribute("username")
            password = logins[0].getAttribute("password")
            prompt_info = logins[0].firstChild.data
            # 登录
            login.login(self, username, password)
            # 获取断言信息进行断言
            text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
            self.assertEqual(text, prompt_info)
    
        def tearDown(self):
            self.driver.quit()
            self.assertEqual([], self.verificationErrors)
    
    
    if __name__ == "__main__":
        unittest.main()
  • 相关阅读:
    sql 查询服务器硬盘剩余空间
    SQL语句导致cpu占用如此高
    (@WhiteTaken)Unity中Invoke的用法
    (@WhiteTaken)设计模式学习——抽象工厂模式
    (@WhiteTaken)设计模式学习——工厂方法模式
    (@WhiteTaken)设计模式学习——简单工厂模式
    c#中的泛型委托(@WhiteTaken)
    c#中@的作用
    lua读书笔记(@WhiteTaken)
    Unity中的预制的Attributes
  • 原文地址:https://www.cnblogs.com/kuihua/p/5510701.html
Copyright © 2020-2023  润新知