如何用selenium自动化用例?

发表于:2019-6-04 10:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Tynam.Yang    来源:博客园

  思路
  将页面操作与用例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 、测试数据进行整理存放

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号