# -*- coding: utf-8 -*-
from selenium import webdriver
from openpyxl import load_workbook
class mylogintest():
'''打开百度测试''' def openBD(self):
'''打开百度'''
print("begin")
self.driver = webdriver.Firefox()
book = load_workbook("mylogintest.xlsx") # 默认可读写,若有需要可以指定write_only和read_only为True
b = book.active
datadict = {} #创建一个字典变量
maxC = b.max_column#获取最大列
maxR = b.max_row#获取最大行
for i in range(1, maxC + 1):#range默认从0开始,到后面参数的-1结束,而openpyxl都是从第一行第一列开始的,所以参数为1,maxC+1;意思就是遍历第一列到最后一列,
datadict.setdefault(b.cell(1, i).value)#设置字典datadict的键值,从第一行第一列,到第一行最后一列,也就是第一行的标题设置为键值,i表示列
# print(datadict)
for i in range(2, maxR + 1):#除去第一行标题,从第二行遍历到最后一行
for j in range(1, maxC + 1):#从第一列遍历到最后一列
datadict[b.cell(1, j).value] = b.cell(i, j).value#在字典里设置键对应的值,j表示列
# print(datadict)
# if datadict["url"] & datadict["校验"] != None:
self.driver.get(datadict["地址"])#从对应键里取出值地址对应的URL值,这里的键就是表格的第一行标题,所以EXCEL的标题要按照规定来写
if self.driver.title == datadict["校验"]:#如果打开地址后,title值跟校验对应的值一致
b.cell(i, maxC, '通过')#就将测试通过结果写入表格中
else:
b.cell(i, maxC, '不通过')#就将测试不通过结果写入表格中
book.save("mylogintest.xlsx")#最后记得关闭
self.driver.quit()
print("end") mylogintest().openBD()

脚本运行后,表格如下:

用python+openpyxl从表格中读取测试用例的多条数据,然后将执行结果写入表格中的更多相关文章

  1. C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation

    C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...

  2. java 将数据库中的每一条数据取出放入数组或者List中

    1.如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中? public static String str = null; // 将StringBuffer转化成字符串 public st ...

  3. 使用jQuery解析JSON数据(由ajax发送请求到php文件处理数据返回json数据,然后解析json写入html中呈现)

    在上一篇的Struts2之ajax初析中,我们得到了comments对象的JSON数据,在本篇中,我们将使用jQuery进行数据解析. 我们先以解析上例中的comments对象的JSON数据为例,然后 ...

  4. 关于MyBatis的collection集合中只能取到一条数据的问题

    问题:在涉及多表查询的时候,使用collection元素来映射集合属性时,出现了只能查询到一条数据的情况,但用sql语句在数据库中查询会有多条记录. 解决:如果两表联查,主表和明细表的主键都是id的话 ...

  5. SQL中一次插入多条数据

    SQL中insert一次可以插入一条数据,我们有三种方法可以一次性插入多条数据. 1. 语法:select 字段列表 into 新表 from 源表 注意事项:此种方法新表是系统自动创建,语句执行前不 ...

  6. layui问题之渲染数据表格时,只显示10条数据

    通过ajax请求的数据,console.log()有30条数据,实际上只显示10条, 原因是没有设置limit table.render({ elem: '#report-collection' , ...

  7. [Python]-openpyxl模块Excel数据处理-读取公式的结果

    日常需要Python来处理各种数据,处理Excel数据常用的库一般有openpyxl.xlrd(读取).xlwt(写入). 经过对比发现openpyxl模块比较好用. openpyxl模块 这篇笔记比 ...

  8. android中读取SD卡上的数据

    通过Context的openFileInput或者openFileOutput打开的文件输入输出流是操作应用程序的数据文件夹里的文件,这样存储的大小比较有限,为了更好的存取应用程序的大文件数据,应用程 ...

  9. python 关于如何把json文件里面的多条数据删除,只保留自己需要的条目

    参考博客: https://www.cnblogs.com/bigberg/p/6430095.html https://zhidao.baidu.com/question/7173208338528 ...

随机推荐

  1. Java8 特性

    1.jdk8的特性stream().map() 2.Java8中用Lambda表达式的groupBy合并多个相同属性的对象集合 3.Java8 Stream 语法详解 & 用法实例

  2. [转]java 根据模板文件生成word文档

    链接地址:https://blog.csdn.net/ai_0922/article/details/82773466

  3. redis连接池(JedisPool)资源归还及timeout详解

    转载. https://blog.csdn.net/yaomingyang/article/details/79043019 一.连接池资源类详解都在注释上 package redis.v1.clie ...

  4. 2019-7-18 collections,time,random,os,sys,序列化模块(json和pickle)应用

    一.collections模块 1.具名元组:namedtuple(生成可以使用名字来访问元素的tuple) 表示坐标点x为1  y为2的坐标 注意:第二个参数可以传可迭代对象,也可以传字符串,但是字 ...

  5. go 指针 通过指针修改int类型的值

    指针的定义 :var p *int 取指针的值 :*p ------------------------------------------------------------------------ ...

  6. CF1109F Sasha and Algorithm of Silence's Sounds LCT、线段树

    传送门 构成一棵树可以分成两个限制:图不成环.图的点数-边数=1. 我们考虑枚举右端点\(r\)计算所有可能的左端点\(l\)的答案.我们先考虑第一个限制:图不成环.注意到当\(r\)确定的时候,满足 ...

  7. Hive学习笔记(三)—— 数据类型

    Hive的基本使用(一)--数据类型 1. Hive的基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2 ...

  8. linux服务器同时运行两个或多个tomcat

    第一步:条件:配置好jdk,如果没有配置好请看:https://www.cnblogs.com/weibanggang/p/11460537.html 第二步:下载安装tomcat 下载tomcat到 ...

  9. Python进阶----进程间数据隔离, join阻塞等待, 进程属性, 僵尸进程和孤儿进程, 守护进程

    Python进阶----进程间数据隔离, join阻塞等待, 进程属性, 僵尸进程和孤儿进程, 守护进程 一丶获取进程以及父进程的pid 含义:    进程在内存中开启多个,操作系统如何区分这些进程, ...

  10. 79.mobile/js---手机端分享调用功能的实现(只能在真机上测试有效)

    html:<a href="javascript:void(0);" class="all-share" onclick="call('defa ...