zoukankan      html  css  js  c++  java
  • selenium-自动化用例(十一)

    思路

    将页面操作与用例case分别封装,编写case时就可以用同一个操作方法对应多个case

    如下图:

    PageGUI:存放页面操作方法,每个页面写一个文件,每个文件中写同一个页面不同的操作,例如检索、排序等

    case:存放自动化用例,主要是引用PageGUI中封装的方法,传入不同的参数达到对应不同case的目的

    以 博客园 后台登陆画面为例:

    loginGUI.py

     1 # coding = utf-8
     2 from selenium import webdriver
     3 
     4 
     5 class loginGUI:
     6     def login(self,driver,username,password,autoLogin_checkbox=None):
     7 
     8         # GUI中定位所需元素
     9         dr = self.get_driver(driver)
    10         username_element = dr.find_element_by_id('input1')
    11         password_element = dr.find_element_by_id('input2')
    12         autoLogin_checkbox_element = dr.find_element_by_id('remember_me')
    13         login_btn = dr.find_element_by_id('signin')
    14 
    15         # 执行步骤
    16         username_element.send_keys(username)
    17         password_element.send_keys(password)
    18         self.checkBox_operation(autoLogin_checkbox_element,autoLogin_checkbox)
    19         login_btn.click()
    20 
    21     # 判断 下次自动登录 传的值是否正确
    22     def checkBox_operation(self,autoLogin_checkbox_element,autoLogin_checkbox):
    23         if autoLogin_checkbox == True:
    24             if autoLogin_checkbox_element.is_selected() == False:  # 判断是否被选中
    25                 return autoLogin_checkbox_element.click()
    26 
    27         elif autoLogin_checkbox == False or autoLogin_checkbox == None:
    28             if autoLogin_checkbox_element.is_selected() == True:  # 判断是否被选中
    29                 return autoLogin_checkbox_element.click()
    30         else:
    31             return None
    32 
    33     def get_driver(self,driver):
    34         url= 'https://passport.cnblogs.com/user/signin'
    35 
    36         if driver == 'chrome':
    37             driver = webdriver.Chrome()
    38         elif driver == 'edge':
    39             driver = webdriver.Edge()
    40         else:
    41             driver = webdriver.Safari()
    42 
    43         driver.get(url)
    44         driver.implicitly_wait(10)
    45         return driver

    Testlogin.py

     1 from PageGUI import loginGUI
     2 import unittest
     3 import time
     4 
     5 
     6 class TestCase(unittest.TestCase):
     7     def test_login(self):
     8         login = loginGUI()
     9         login.login(driver='chrome',username='123',password='345',autoLogin_checkbox=1)
    10         time.sleep(3)
    11 
    12     def test_login_usernameError(self):
    13         pass
    14 
    15     def test_login_passwordError(self):
    16         pass
    17 
    18 
    19 if __name__ == '__main__':
    20     unittest.main()

    以上只是对case的对应

    更多的可以将 driver 、测试数据进行整理存放

    原文发布在 软件羊皮卷 微信公众号中,欢迎大家关注

  • 相关阅读:
    在HTML中使用JavaScript
    七层网络模型
    JS执行机制
    继承
    变量作用域
    跨域
    ES6-Promise
    回调函数
    2019.3.9笔试
    CSS3新特性
  • 原文地址:https://www.cnblogs.com/tynam/p/10371727.html
Copyright © 2011-2022 走看看