本文章转载于搜狗测试
最近一段时间微信公众号收到了许多小伙伴的留言,微信编辑部的小编们欣喜若狂,在此感谢大家的关注和支持。为了与大家进行互动交流,小编认真地查看每一条留言:有问Fiddler抓包工具的问题,有问自动化selenium的问题,当然还有问小剪子去哪儿了,O(∩_∩)O~。小编决定这周四的自动化专栏挑一个大家都比较关心的问题进行解答:
热心网友陈锐问道: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化?
答:可以使用xlrd读取Excel的内容进行参数化。当然为了便于各位小伙伴们详细的了解,小编一一介绍具体的方法。
Selenium的环境准备:
1.安装Java
2.安装Python2.7
3.安装pip
4.通过pip安装selenium
5.下载Selenium服务端并运行
(搜狗测试公众号之前分享过类似内容,同时网上也有比较详细的教程,所以略过。如果小伙伴们不了解此处的内容,建议参考http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html)
编写登录用例:
Step1:访问http://www.effevo.com (打个广告effevo是搜狗自研发的项目管理系统,完全免费,非常好用)
Step2:点击页面右上角的登录
Step3:输入用户名和密码后登录
Step4:检查右上角的头像是否存在
实现代码:
制作Excel文件:
下一步,我们将用户名和密码保存到一个Excel文件,文件命名为data.xlsx,其中有两列数据,第一列为username,第二列为password。
安装xlrd第三方库:
Python读取Excel文件需要使用第三方的库文件xlrd,我们到python官网下载http://pypi.python.org/pypi/xlrd模块安装。
1.下载xlrd-0.9.4.tar.gz
2.解压该文件。(由于该文件是用tar命令压缩的,所以建议windows用户用7zip解压)
3.命令行运行Setup.py文件:setup.py install
4.提示安装完毕后,我们就可以在python脚本中import xlrd了。
xlrd读取Excel文件:
xlrd库文件操作Excel的几个重要函数是
data = xlrd.open_workbook('excelFile.xls')#打开Excel文件读取数据
table = data.sheets()[0]#通过索引顺序获取获取一个工作表
table.row_values(i)#获取整行的值(数组)
nrows = table.nrows#获取行数
为了方便使用,我们把以上用到的函数封装为excel_table_byindex()函数。
实现代码:
Excel数据参数化:
经过以上的处理,测试脚本从E:\\data.xlsx中读取到用户名和密码,我们修改原登录脚本中的用户名和密码输入即可:
browser.find_element_by_id('passname').send_keys(listdata[i]['username'])
browser.find_element_by_id('password').send_keys(listdata[i]['password'])
实现代码: