一 .Base层代码分析
Base层代码主要涉及到底层操作,如对click、send_keys及clear等事件的封装,可以提高代码的复用性。
二.主要代码分析
文件名称为base.py,主要包含定位元素方法findele,方法findele返回的结果是元素定位语句,该函数用参数*args可以接收任意多个非关键字参数,参数的类型为元组。
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2019/12/26 17:01
# @file : base.py
# @Software : PyCharm
# @author : MAYH
# @contact : mayh@chnsys.com.cn
# @Version :V1.1.0
"""
文件说明:
"""
from Common.log import FrameLog
class Base():
def __init__(self, driver):
self.driver = driver
self.log = FrameLog().log()
# 单引号参数代表此处接收任意个非关键字参数
def findele(self, *args):
try:
print( args )
self.log.info( "通过" + args[0] + '定位,元素是' + args[1] )
return self.driver.find_element( *args )
except:
#
self.log.error( '定位元素失败' )
# 对元素click
def click(self, args):
self.findele( args ).click()
# 输入值
def sendkey(self, args, value):
self.findele( args ).sendkey( value )
# 调用js方法
def js(self, str):
self.driver.execute_script( str )
def url(self):
return self.driver.current_url
# 后退
def back(self):
self.driver.back()
# 前进
def forword(self):
self.driver.forword()
# 退出
def quit(self):
self.driver.quit()
三.抽离单元测试中的setUp与tearDown方法
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2019/12/26 17:07
# @file : base_unit.py
# @Software : PyCharm
# @author : MAYH
# @contact : mayh@chnsys.com.cn
# @Version :V1.1.0
"""
文件说明:
"""
import unittest
from Common.function import config_url
from selenium import webdriver
# 抽离单元测试中的setUp与teardown方法
class UnitBase( unittest.TestCase ):
@classmethod
def setUpClass(cls) -> None:
cls.driver = webdriver.Chrome()
cls.driver.get( config_url() )
cls.driver.maximize_window()
def tearDownClass(cls) -> None:
cls.driver.quit()