zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    泛型
    HDU 4917 Permutation
    OC本学习笔记Foundation框架NSString与NSMutableString
    HDU 5095 Linearization of the kernel functions in SVM(模拟)
    大约Java有点感悟---开发商根本上感悟学习
    Codeforces 442B Andrey and Problem(贪婪)
    mysql数据库优化课程---15、mysql优化步骤(mysql中最常用最立竿见影的优化是什么)
    mysql数据库优化课程---14、常用的sql技巧
    mysql数据库优化课程---13、mysql基础操作(mysql如何复制表)
    mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)
  • 原文地址:https://www.cnblogs.com/yuntimer/p/11963945.html
Copyright © 2011-2022 走看看