selenium系列--测试脚本--将Excel文件用于测试(unittest数据驱动实战)

         这里是清安,上一章我们讲了Yaml数据驱动,本章我们来说说Excel的数据驱动。

        我们只需要写一个函数方法进行调用即可,读取Excel文件,将值进行返回便于下一个接口使用。

import xlrd

class Excel_Login:

    def excel_login(self):
        file_name = xlrd.open_workbook(r'F:\111.xlsx')
        # 读取表单
        sh1 = file_name.sheet_by_index(0)
        # 读取行数
        rows = sh1.nrows
        datalist = []
        for i in range(1, rows):
            # 遍历每行的值,添加到空列表
            datalist.append(sh1.row_values(i))
        return datalist

        学了Yaml的数据驱动,我们直接将代码copy过来即可。

"""元素定位登录界面代码"""
class T_test():
    def __init__(self,fox):
        self.fox = fox
 
    def login(self,f_get,username,password):
        self.fox.get(f_get)
        if_rame = self.fox.find_elements_by_tag_name('iframe')[0]
        self.fox.switch_to.frame(if_rame)
        self.fox.find_element_by_id('switcher_plogin').click()
        self.fox.find_element_by_id('u').send_keys(username)
        self.fox.find_element_by_id('p').send_keys(password)
        self.fox.find_element_by_id('login_button').click()

        这里也就写到了,接下来是unittest模块,与Yaml的会稍微有一点点的不同:

@ddt
class LoginTest(unittest.TestCase,T_test):

    i = Excel_Login().excel_login()

    def setUp(self) -> None:
        self.fox = webdriver.Firefox()
        self.fox.implicitly_wait(5)

    def tearDown(self) -> None:
        self.fox.quit()

    @data(*i)
    @unpack
    def test01(self,username,password):
        self.login('https://qzone.qq.com/',username,password)
        self.ele = self.fox.title
        self.assertEqual(self.ele, 'QQ空间-分享生活,留住感动',msg='不符合')

        包记住该有的还得有,别少了,这里在模块内的添加了实例化对象,然后再去进行数据驱动,用两个参数进行接收解析出来的值用于账号登录。

        与Yaml数据驱动还有有着一些异曲同工之妙的。

你可能感兴趣的:(selenium,selenium,excel)