一、实战准备
在工程文件下创建 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