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").s_keys(row[0]) driver.find_element_by_name("password").s_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文件里的账号,密码数据,并点击登录,登录系统界面后,点击退出,跳转到成功退出提示页面,点击重新登录按钮,再次执行登录过程,直至读取完所有数据,退出并关闭浏览。

标签: 区块链