Python3+Selenium Web自动化测试案例分享⑷——页面基础类方法
本章节主要是封装selenium库的一些基础操作方法,如:元素定位、截图、元素通用操作、切换frame、警示框处理等等,basePage是最底层操作页面的方法,只要是web页面一些常用的操作都可以写在该基类中,后面有需要的地方直接调用即可。
一、basePage.py
# _*_ coding:utf-8 _*_ import time,os from selenium.webdriver.support.ui import WebDriverWait #导入显示等待等待 from selenium.webdriver.support import expected_conditions as EC #导入判断方法 from Public import getPathInfo,log log_info =log.logger #log方法 class BasePage(object): """ 基本类,用于所有页面的继承 """ def __init__(self, driver): self.driver = driver def _open(self, url, pagetitle): """ 打开网页 :param url: 网址 :param pagetitle: 关键字 """ self.driver.maximize_window() #浏览器最大化 self.driver.implicitly_wait(30) #显示等待 self.driver.get(url) #打开指定网站 assert pagetitle in self.driver.title, log_info.error("页面源码中不存在该关键字!") #断言打开页面是否正确 def find_element(self, *loc): """ 重写定位元素 """ try: #WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(loc)) #判断元素是否存在 WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element(*loc).is_displayed()) #判断元素是否存在 return self.driver.find_element(*loc) #返回定位元素 except Exception as e: log_info.error('%s页面未找到%s元素' % (self, loc)) self.get_windows_img() #截图 def switch_frame(self, loc): """ 切换frame """ return self.driver.switch_to.frame(loc) def script(self, src): """ 定义script方法,用于执行js脚本 """ self.driver.execute_script(src) def get_windows_img(self): """ 截图 """ image_path=getPathInfo.join_cwd('Report\\Images\\') #拼接截图存放目录 if not os.path.exists(image_path): #判断目录是否存在 os.mkdir(image_path) #创建目录文件 nowtime=time.strftime("%Y%m%d%H%M%S") #当前时间变量 image_name=image_path +nowtime+ '.png' #截图路径 try: self.driver.get_screenshot_as_file(image_name) #截图 log_info.info("截图保存地址:%s" % image_name) print('screenshot:', nowtime+'.png') #打印screenshot关键字,报告中显示截图 except NameError as e: log_info.error("截图保存失败! %s" % e) #self.get_windows_img()
—————————————————————————————— 选择正确的事、再把事做正确
——————————————————————————————