zoukankan      html  css  js  c++  java
  • python+selenium2自动化---关键字驱动+unittest结合实现自动化

    简单理解:

    关键字驱动就是将页面元素的定位、操作等相关代码封装成方法(关键字),编写用例的时候直接调用对应方法(关键字),而不用关心页面元素的相关操作

    unittest框架组织和执行测试用例

    示例代码如下:

    页面元素操作的关键字:

    from selenium import webdriver
    
    
    class BasePage():
        def __init__(self,name,url):
            self.driver = self.open_brower(name,url)
    
        def open_brower(self,name,url):
            if name == 'chrome':
                driver = webdriver.Chrome()
            if name=='ie':
                driver = webdriver.Ie()
    
            driver.get(url)
            driver.maximize_window()
            return driver
        
        #在输入框输入内容
        def input_text(self,locater_type,locater,text):
            if locater_type == 'id':
                self.driver.find_element_by_id(locater).send_keys(text)
            if locater_type == 'xpath':
                self.driver.find_element_by_xpath(locater).send_keys(text)
            if locater_type == 'name':
                self.driver.find_element_by_name(locater).send_keys(text)
         #点击按钮
        def click_ele(self, locater_type, locater):
            if locater_type == 'id':
                self.driver.find_element_by_id(locater).click()
            if locater_type == 'xpath':
                self.driver.find_element_by_xpath(locater).click()
            if locater_type == 'name':
                self.driver.find_element_by_name(locater).click()

    测试用例代码

    import unittest
    import time
    from ddt import ddt,data,unpack
    from MainPage import BasePage
    
    @ddt
    class TestLogin1(unittest.TestCase):
        def setUp(self):
            print('开始测试')
    
        def tearDown(self):
            print('结束测试')
    
        @data(('id','userAccount','id','password','xpath','//*[@id="root"]/div/div/div[2]/form/div[4]/div/div/div/button','xxxxxxx','123456'),
              ('id','userAccount','id','password','xpath','//*[@id="root"]/div/div/div[2]/form/div[4]/div/div/div/button','aaaaaaaa','123456'))
        @unpack
        def test_manager_login(self,locater_type,locator,locator_type1,locator1,locator_type2,locator2,text,text1):
            driver = BasePage('chrome','http://xxxxxxxxx.com/login')
            driver.input_text(locater_type,locator,text)
            driver.input_text(locator_type1, locator1, text1)
            driver.click_ele(locator_type2,locator2)
            time.sleep(2)
            driver.driver.quit()
    
    if __name__ == '__main__':
        unittest.main()

    执行结果:

     

  • 相关阅读:
    函数声明与函数指针
    【LeetCode】三角形最小路径和
    【LeetCode】字符串中的第一个唯一字符
    【LeetCode】基本计算器II
    【LeetCode】二叉树的最小深度
    【LeetCode】加油站
    java中json与对象的转换
    idea2017 无法使用maven3.6.3版本导入依赖
    springboot项目注册为windows系统服务并设置开机自启
    springmvc上传文件
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13202018.html
Copyright © 2011-2022 走看看