public

1、pages

        ① BasePage.py

#coding=utf-8


'''
把所有页面公共公开的方法都封装在BasePage这个基类当中
'''

import unittest

class BasePage(unittest.TestCase):
    @classmethod
    def set_driver(cls,driver):  #设置driver对象、保证所有的用例用的是同一个driver对象
        cls.driver = driver

    @classmethod
    def get_driver(cls):    #单例模式
        return cls.driver   #拿到driver对象、保证登录、发帖等等是同一个driver对象

    @classmethod
    def find_element(cls,element):
        type = element[0]
        value = element[1]
        if type == 'id':
            elem =  cls.driver.find_element_by_id(value)
        elif type == 'class':
            elem = cls.driver.find_element_by_class_name(value)
        elif type == 'xpath':
            elem = cls.driver.find_element_by_xpath(value)
        elif type == 'link_text':
            elem = cls.driver.find_element_by_link_text(value)
        elif type == 'css':
            elem = cls.driver.find_element_by_css_selector(value)
        else:
            raise NameError('please input correct params')
        return elem

    @classmethod
    def send_keys(cls,elem,text): #cls.driver.find_element_by_id(value)
        # return cls.find_element(elem).send_keys(text)
        return elem.send_keys(text)

    @classmethod
    def click(cls,elem):
        elem.click()

    @classmethod
    def close(cls):
        return cls.driver.close()

    @classmethod
    def get_text(cls,elem):
        return BasePage.find_element(elem).text

    @classmethod
    def go_home(cls,elem):
        '''回到首页'''
        value = BasePage.find_element(elem)
        BasePage.click(value)

# if __name__ == '__main__':
#     m = BasePage()
#     baidu_input = ('id', 'kw')  # ==>page object设计模式
#     elem = m.find_element(baidu_input)

        ② PageElement.py

#coding=utf-8


class PageElement:

    #登录元素定位
    userName = ('id', 'ls_username')
    passWord = ('id', 'ls_password')
    loginBtn = ('css', '.pn')
    loginOut = ('xpath', '//*[@id="um"]/p[1]/a[7]')

    #模块管理元素定位
    module_management = ('link_text','模块管理')
    submitBtn = ('xpath','//*[@id="submit"]/strong')

    #回到首页
    index = ('xpath','//*[@id="mn_forum"]/a')

2、utils

        ① HTMLTestRunner.py

        ②mail.py

        ③ReadConfigIni.py

#coding=utf-8


'''
配置文件的格式一般有哪些:
.ini  .xlsx  .yaml  .conf  .csv
'''
from configparser import ConfigParser  #导入类
from bbs_framework.config.globalconfig import config
import os

class ReadConfigIni:

    def __init__(self,filename):
        self.cf = ConfigParser()   #创建ConfigParser类的对象
        self.cf.read(filename)

    def get_ini_data(self,section, option):
        '''或者ini后缀结尾的文件内容'''
        value = self.cf.get(section, option)
        return value

read_conf = ReadConfigIni(os.path.join(config,'config.ini'))
# print r.get_ini_data('path','project_path')
# print r.get_ini_data('env','url')


        ④ReadExcel.py


'''
1.在dos窗口用pip install xlrd ==》下载xlrd模块
2.这个xlrd模块是用来读取Excel表格的
'''

import xlrd
from bbs_framework.config.globalconfig import *

#拿到了data.xlsx文件的绝对路径和文件名称
datapath = os.path.join(data,'data.xlsx')

class ReadExcel:

    def __init__(self,filename,sheetname):
        '''打开Excel表格工作薄、拿到self.workbook对象'''
        self.workbook = xlrd.open_workbook(filename)
        #选择具体的sheet页面
        self.sheet_name = self.workbook.sheet_by_name(sheetname)

    def read_excel(self,rowx, colx):
        '''封装一个读取Excel文件的工具方法'''
        value = self.sheet_name.cell(rowx, colx).value
        return value

r = ReadExcel(datapath,'Sheet1')
print (r.read_excel(1,0))   #通过索引值拿到url地址 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值