一、分离数据时,需读取文档中存储的数据,但TXT文件的数据读取出来的类型为列表,而测试用例中断言的时候验证的是字符串,所以需要将列表转为字符串

#1字符串————》列表
str1='hello panda'
list1=str1.split(' ')
print list1,type(list1)
#结果:['hello', 'panda'] <type 'list'> #列表---》字符串
list2=['webdriver','autotest','']
str2=''.join(list2) #''是指以"空":‘’链接列中中的数据,也可以空格链接‘ ’
print str2,type(str2)
#结果:webdriverautotest23 <type 'str'> #unicode--->字符串
u=u'panda'
print type(u),u.encode('utf-8'), type(u.encode('utf-8')),
#结果:<type 'unicode'>,panda <type 'str'> #字符串--->unicode
str3='panda'
print str3.decode('gbk'),type(str3.decode('gbk'))
#结果:panda <type 'unicode'>

二、读取TXT文档里的内容   尧都区的结果为str类型

log.txt  里的内容为:

请您输入手机/邮箱/用户名
请您输入密码
请您输入验证码
!/usr/bin/env.python
#-*-coding:utf-8-*-
import os
f=open(os.path.join(os.path.dirname(__file__),'log1.txt'),'r')
print f.readlines()
print type(f.readlines())

运行结果为:

['\xe8\xaf\xb7\xe6\x82\xa8\xe8\xbe\x93\xe5\x85\xa5\xe6\x89\x8b\xe6\x9c\xba/\xe9\x82\xae\xe7\xae\xb1/\xe7\x94\xa8\xe6\x88\xb7\xe5\x90\x8d\n', '\xe8\xaf\xb7\xe6\x82\xa8\xe8\xbe\x93\xe5\x85\xa5\xe5\xaf\x86\xe7\xa0\x81\n', '\xe8\xaf\xb7\xe6\x82\xa8\xe8\xbe\x93\xe5\x85\xa5\xe9\xaa\x8c\xe8\xaf\x81\xe7\xa0\x81']
<type 'list'>

从结果可以看出,读取出的内容是列表类型,!但是!列表中的元素前几个最后都有换行符‘\n’,直接按索引去取,取到的值里包含‘\n’

所以,可以利用字符串转列表将‘\n’去掉:split(‘\n’)(split()方法同时又转为了列表)<-------将原list先转换为str:''.join()

import os
f=open(os.path.join(os.path.dirname(__file__),'log1.txt'),'r')
str1=''.join(f.readlines())
list1=str1.split('\n')
print type(str1) ,type(list1)
print list1
print list1[0]

运行结果为:

<type 'str'> <type 'list'>
['\xe8\xaf\xb7\xe6\x82\xa8\xe8\xbe\x93\xe5\x85\xa5\xe6\x89\x8b\xe6\x9c\xba/\xe9\x82\xae\xe7\xae\xb1/\xe7\x94\xa8\xe6\x88\xb7\xe5\x90\x8d', '\xe8\xaf\xb7\xe6\x82\xa8\xe8\xbe\x93\xe5\x85\xa5\xe5\xaf\x86\xe7\xa0\x81', '\xe8\xaf\xb7\xe6\x82\xa8\xe8\xbe\x93\xe5\x85\xa5\xe9\xaa\x8c\xe8\xaf\x81\xe7\xa0\x81']
请您输入手机/邮箱/用户名

将多次转换组合到一起:

先将读出的内容转为字符串,再将字符串以换行符转为列表

list=(''.join(f.readlines())).split('\n)

三、测试百度登录,将提示的验证信息分离在TXT文件中,断言时,以索引的方式读取

以下代码将(''.join(f.readlines())).split('\n)取得的列表存入提前他定义的列表list1中,
!/usr/bin/env.python
#-*-coding:utf-8-*-
from selenium import webdriver
import unittest
import os class baiduTest(unittest.TestCase): @classmethod
def setUp(cls):
cls.driver=webdriver.Firefox()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get('https://www.baidu.com/') def test_01(self):
'''验证用户名和密码为空时,系统的提示信息是否正确'''
self.driver.find_element_by_link_text(u'登录').click()
self.driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
text=self.driver.find_element_by_id('TANGRAM__PSP_10__error').text
self.assertEqual(text.encode('utf-8'),self.readlog()[0]) def test02(self):
'''验证输入用户名,不输入密码时,系统的提示信息是否正确'''
self.driver.find_element_by_link_text(u'登录').click()
self.driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys('')
self.driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
text = self.driver.find_element_by_id('TANGRAM__PSP_10__error').text
self.assertEqual(text.encode('utf-8'),self.readlog()[1])
@classmethod
def tearDown(cls):
cls.driver.quit() @staticmethod
def suite():
suite=unittest.makeSuite(baiduTest)
return suite def readlog(self):
list1=[]
with open(os.path.join(os.path.dirname(__file__),'log1.txt'),'r') as f:
for item in (''.join(f.readlines())).split('\n'):
list1.append(item)
return list1 if __name__=='__main__':
unittest.TextTestRunner(verbosity=2).run(baiduTest.suite())

 
 

unittest之三:字符串与列表的相互转换与分离数据时的应用的更多相关文章

  1. python中字符串与列表的相互转换

    列表转字符串 list1 = ['abc' , 'def' , 'ghi'] str1 = ','.join(list1) str1 = '##'.join(list1) 字符串转列表 str1 = ...

  2. python字符串与列表的相互转换

    学习内容: 1.字符串转列表 2.列表转字符串 1. 字符串转列表 s ='hello python !'li = s.split(' ') #注意:引号内有空格print (li)输出:['hell ...

  3. python 字符串与列表的相互转换 数据类型转换

    Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...

  4. python中字符串与列表之间的相互转换

    1.字符串>列表:split() a = 'my first python' b = a.split(" ") print(b)输出: 2.列表>字符串:join() ...

  5. python 列表,字典,元组,字符串,QuerySet之间的相互转换

    1. 列表转换成字典list1 = ['key1','key2','key3']list2 = ['value1','value2'] dict1 = zip(list1,list2) # dict( ...

  6. python 小白(无编程基础,无计算机基础)的开发之路,辅助知识6 python字符串/元组/列表/字典互转

    神奇的相互转换,小白同学可以看看,很有帮助 #1.字典dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type ...

  7. Python黑帽编程2.3 字符串、列表、元组、字典和集合

    Python黑帽编程2.3  字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...

  8. Python之路 day2 字符串/元组/列表/字典互转

    #-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type ' ...

  9. python基础知识5——赋值与深浅拷贝——整数和字符串,列表元组字典

    深浅copy 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 import copy 2 # ######### 数字.字符串 #### ...

随机推荐

  1. Vue 新手学习笔记:vue-element-admin 之安装,配置及入门开发

    所属专栏: Vue 开发学习进步 说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手架 ...

  2. sql注入的基本小知识

    load_fie('') into outfile '' into dumpfile('') 堆叠注入 ;insert into liunx密码读取 /etc/passwd /etc/shadow W ...

  3. [GIT]提交后版本恢复

    如果在回退以后又想再次回到之前的版本,可以用relog查看commit id,再使用reset设置.   1.执行 relog 后:   展示的最前面的部分就是commit id,后面会用来作为恢复的 ...

  4. mysql删除数据库所有表

    -- 生成删除xxx数据库的所有表的sql语句SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` ...

  5. vue问题六:计算属性,依赖发生变化时,重新计算computed:

    <el-form-item label="单价:" prop="price" > <el-input v-model="addfor ...

  6. Linux基础(二)之命令

    01-基础命令 1. 创建一个目录 mkdir /data 创建多级目录 mkdir -p /oldboy/data 2. 查看目录里面的内容 ls /data 3. 查看目录里面的详细信息 ls - ...

  7. 爬虫 selenium + phantomjs / chrome

    selenium 模块 Web自动化测试工具, 可运行在浏览器,根据指定命令操作浏览器, 必须与第三方浏览器结合使用 安装 sudo pip3 install selenium phantomjs 浏 ...

  8. python 学习笔记(一):在列表、字典、集合中根据条件筛选数据

    一.在列表中筛选数据 在列表中筛选出大于等于零的数据,一般通用的用法代码如下: data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表 result = ...

  9. dbgrid中移动焦点到指定的行和列

    dbgrid是从TCustomGrid继承下来的,它有col与row属性,只不过是protected的,不能直接访问,要处理一下,可以这样:TDrawGrid(dbgrid1).row:=row;TD ...

  10. nginx配置443端口

    参照地址:    https://www.cnblogs.com/tianhei/p/7726505.html       https://blog.csdn.net/cjs5202001/artic ...