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

  • 相关阅读:
    后端程序员必备的 Linux 基础知识+常见命令(近万字总结)
    信息收集流程
    在不影响程序使用的情况下添加shellcode
    使用Zolom内存解析运行python脚本(不落地)
    要点3:输入函数对比与自定义输入方式
    要点2:循环、条件控制
    对等连接和云联网
    上传自定义镜像到腾讯云
    Windows 激活
    MySQL错误(报错)一览表(对照表)
  • 原文地址:https://www.cnblogs.com/yuntimer/p/11963945.html
Copyright © 2011-2022 走看看