学习
实践
活动
工具
TVP
写文章

selenim自动化数据驱动测试实例读取csv文件实现批量登录账号

selenim自动化数据驱动测试实例读取csv文件实现批量登录账号,在上一篇中我们已经讲解了如何通过读取txt文件里的数据,实现我们批量登录的脚本,那么这一次我们再使用另外一个数据源.csv文件用做一下批量登录的用例跑一下。

因为这个比txt处理数据的时候会比较方便,为什么这么说呢,假如,我们现在要读取的是一组用户数据(包括用户名,密码,邮箱,年龄,性别)信息,那么使用aplit()方法去拆分数据是很麻烦的事情,因为aplit()方法一次只能将字符串拆分成左右两部分。

下面给大家演示一下,如何通过读取csv文件的方法来解决每次读取多个信息的问题。

首先创建一个usre.csv文件,通过WPS表格或者Excel创建表格,个人推荐使用WPS,好用还免费,输入截图里的数据,点击另存为文件名为user,文件类型选择CSV格式,点击保存按钮。

csv文件数据

下面python脚本分享一下,先创建一个.py文件,然后写入以下脚本。

import csv

file_163="E:\\yuangbao\\bao1\\user.csv"

filename=open(file_163)

reader=csv.reader(filename)

for row in reader:

print("账号:%s"%row[0],"密码:%s"%row[1],"年龄:%s"%row[2],"性别:%s"%row[3])

使用pycharm执行脚本效果图如下:

python文件执行效果图

解释一下脚本,首先导入csv模块,通过reader()方法读取csv文件。然后通过for循环读取文件中的每一行数据。

从打印的结果可以看出csv文件是以数组的形式存在的。那么我们想取用户的某一列信息的时候,只需要指定下标就可以获取到了,从上面的例子看,我取的信息是账号,密码,年龄,性别,那么我就分别用数组的方式 来表示row[0],row[1],row[2],row[3]获取就可以了。数组的下标是以0开始的。

下面再用一个邮箱登录的案例给大家演示一下,如何结合csv做批量登录并退出操作。

python脚本如下,创建一个.py文件,并创建一个类TestDemo,一个函数login_163(),并编写里面元素定位操作

from selenium import webdriver

import csv

from time import sleep

class TestDemo():

def login_163(self):

driver = webdriver.Chrome()

driver.maximize_window()

driver.get("网易邮箱地址")

file_163 = "E:\\yuangbao\\bao1\\user.csv"

filename = open(file_163)

reader = csv.reader(filename)

for row in reader:

driver.switch_to.frame("x-URS-iframe")

driver.find_element_by_name("email").send_keys(row[0])

driver.find_element_by_name("password").send_keys(row[1])

driver.find_element_by_id("dologin").click()

sleep(5)

driver.find_element_by_link_text("退出").click()

sleep(3)

driver.find_element_by_id("js-relogin").click()

driver.quit()

if __name__=="__main__":

TestDemo().login_163()

解释一下脚本,先创建类,然后创建一个函数,打开浏览器为谷歌浏览器,最大化窗口,使用get()方法打开邮箱网页,定义一个变量存放csv数据,循环读取数据,切入iframe表单定位到页面用户,密码文本框,导入csv文件里的账号,密码数据,并点击登录,登录系统界面后,点击退出,跳转到成功退出提示页面,点击重新登录按钮,再次执行登录过程,直至读取完所有数据,退出并关闭浏览。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180801A1Z4KZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券