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

原文地址:https://www.cnblogs.com/yuntimer/p/11963945.html