首页 > 编程语言 > 详细

Python3+Selenium Web自动化测试案例分享⑷——页面基础类方法

时间:2020-08-13 12:17:55      阅读:88      评论:0      收藏:0      [点我收藏+]

本章节主要是封装selenium库的一些基础操作方法,如:打开网页、定位元素、截图等,这里是最基本最底层操作浏览器的方法,详情如下:

一、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()

Python3+Selenium Web自动化测试案例分享⑷——页面基础类方法

原文:https://www.cnblogs.com/airb/p/13490282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!