• python-Csv 实战


    一、实战准备

      在工程文件下创建 test.csv 文件,这里不能直接创建,需要现创建 test.xlsx 文件,不能直接修改后缀,要另存为 test.csv,实践文件内容如下:

           

       下面实现读取 csv 文件内容:

    import csv
    import os
    
    def readCsv(row,col):
        rows = []
        with open(os.path.join(os.path.dirname(__file__),'test.csv')) as f:
            reader = csv.reader(f)
            next(reader,None)
            for iter in reader:
                rows.append(iter)
        return ''.join(rows[row][col])
    print(readCsv(1,2))
    #打印出来是:请输入邮箱名
    

      以上代码,首先把读取的文件内容放在 rows 的列表中,“.join(rows[row][col])” 是把列表 row 转换为字符串。

    二、实现代码

      以新浪登录为例,实现把测试中的数据存储到 csv 文件中,实现的代码如下:

    __author__ = "XXX"
    
    import unittest
    from selenium import webdriver
    import os
    import time as t
    import csv
    
    def readCsv(row,col):
        rows = []
        with open(os.path.join(os.path.dirname(__file__),'test.csv')) as f:
            reader = csv.reader(f)
            next(reader,None)
            for iter in reader:
                rows.append(iter)
        return ''.join(rows[row][col])
    
    class SinaLogin(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Chrome()
            self.driver.maximize_window()
            self.driver.get('http://mail.sina.com.cn/')
            self.driver.implicitly_wait(30)
    
        def tearDown(self):
            t.sleep(3)
            self.driver.quit()
    
        def login(self,username,password):
            '''验证:测试新浪邮箱登录N中情况'''
            self.driver.find_element_by_id('freename').send_keys(username)
            self.driver.find_element_by_id('freepassword').send_keys(password)
            self.driver.find_element_by_link_text(u'登录').click()
    
        def divText(self):
            divText = self.driver.find_element_by_xpath('/html/body/div[1]/div/div[2]/'
                                                        'div/div/div[4]/div[1]/div[1]/div[1]/span[1]')
            # 在freeError-span[1]里,根据情况输入情况变化的
            return (divText.text).encode('utf-8')
    
        def test_username_password_null(self):
            '''验证:测试用户名和密码都为空的错误提示信息'''
            # 都为空,提示:请输入邮箱名
            self.login(readCsv(0,0), readCsv(0,1))
            self.assertTrue(self.divText(), readCsv(0,2))
    
        def test_sina_password_null(self):
            '''验证:测试用户为空密码不为空的错误提示信息'''
            # 用户名:空,密码:admin,提示:请输入邮箱名
            self.login(readCsv(1,0), readCsv(1,1))
            self.assertTrue(self.divText(), readCsv(1,2))
    
        def test_sina_username_format(self):
            '''验证:测试用户邮箱格式不正确的错误提示信息'''
            # 用户名:admin@sina.com,密码:空,提示:请输入密码
            self.login(readCsv(2,0), readCsv(2,1))
            self.assertTrue(self.divText(), readCsv(2,2))
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)
    

      效果略。

    谢谢查看!

    2019-11-30

  • 相关阅读:
    POJ 3070 Fibonacci【矩阵连乘】
    hdu 3038 How Many Answers Are Wrong【并查集的简单应用】
    POJ 2236 Wireless Network 【并查集的简单应用 判断是否在同一连通分量】
    POJ 1984 Navigation Nightmare【并查集思路总结】
    POJ 2492 A Bug's Life【并查集的简单应用同类的判断】
    POJ 1703 Find them, Catch them【典型并查集:判断在不同的集合】
    POJ 1456 Supermarket【贪心 + 并查集】
    ZOJ 3261 Connections in Galaxy War【并查集】
    POJ 1984 Navigation Nightmare
    POJ 1988 Cube Stacking【并查集的简单应用 堆木块】
  • 原文地址:https://www.cnblogs.com/yuntimer/p/11963945.html
Copyright © 2020-2023  润新知