自动化测试(三)

本文详细介绍了Selenium WebDriver的Base层代码封装,包括click、send_keys等事件的封装,提高了代码的复用性。同时,展示了如何在单元测试中抽离setUp与tearDown方法,以实现测试环境的快速搭建与资源的高效利用。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值