Python-基于数据驱动模式的自动化测试框架搭建的的逐步实现(二)
------封装走起!!
后续关于 <Python-基于数据驱动模式的自动化测试框架搭建的的逐步实现> 的博客例子全部基于:126邮箱登录并新建联系人,这个例子来实现的;
大家好,我们继续 <Python-基于数据驱动模式的自动化测试框架搭建的的逐步实现> 之旅,本篇博客开始我们要进入封装的旅途。
首先我们建一个工程,这里面我用的IDE是pycharm,个人觉得还是比较好用的;
这里给初学语言的小朋友们一点小建议:
开始练习编写的时候不建议使用IDE,因为大部分IDE具备联想功能,这样不利于记忆常用命令。我最开始的时候就用的写字板,着实好用,除了空格要手动敲,没有颜色以外,真心不错,可以强化记忆。
这里我给本次工程取的名字叫:data_driven_framework
在本篇博客中,我们要先封装5个packages出来:Until、Conf、PageObject、ProjectVar、TestData
1、Util(相当于底层工具,复用次数多)U
Util中包括一下文件:读写Excel的方法、获取页面元素的方法、读取配置文件的方法、获得driver的方法、
1.1 获取页面元素的封装【driver.find_element_by(LocateType,LocateExpression)】-----ObjectMap.py
从Python-基于数据驱动模式的自动化测试框架搭建的的逐步实现(一)中我们可以看到,好多代码是重复编写的,比如:driver.find_element_by(LocateType,LocateExpression),那么就可以把这个获取元素的操作封装起来,后面要对元素进行操作的时候,直接调用获取元素的方法就好了,这样就降低了代码的冗余度;
话不多说,上代码:
#encoding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import Select import time def getEelement(driver,locateType,locateExpression): #获取页面单个元素 try: wait=WebDriverWait(driver,10) return wait.until(lambda x:x.find_element(locateType,locateExpression)) except Exception,e: raise e def getElements(driver,locateType,locateExpression): #获取页面多个元素 try: wait=WebDriverWait(driver,10) return wait.until(lambda x:x.find_elements(locateType,locateExpression)) except Exception,e: