一、
1.通过csv文件批量导入数据
1 from selenium import webdriver
from time import ctime,sleep
import csv
#循环读取每一行每一个字段csv
bid_info = csv.DictReader(open('E:\\script\\python-script\\demo_test_courses.csv','r'))
dict_data = []
for lines in bid_info:
if bid_info.line_num == 1:
continue
else:
dict_data.append(lines)
row_num = len(dict_data)#计算csv文件行数,从而得出i的循环限制数
# print('this is all the data---' + str(dict)) i = 0#初始化循环次数值
while(i < row_num):
#print('this is'+str(i)+'row----'+ str(dict_data[i]))
#print(dict_data[i])
print((dict_data[i])['first_name'])
print((dict_data[i])['last_name'])
#创建课程
driver = webdriver.Chrome()
driver.get("http://demo.pingnanlearning.com/test/login/index.php")
driver.find_element_by_id("username").send_keys("grace")
driver.find_element_by_id("password").send_keys("")
driver.find_element_by_id("loginbtn").click()
driver.find_element_by_link_text(u"系统管理").click()
driver.find_element_by_link_text(u"添加课程").click()
driver.find_element_by_id("").click()
driver.find_element_by_class_name("kc_btn_next").click()
driver.find_element_by_name("fullname").send_keys((dict_data[i])['first_name'])
driver.find_element_by_id("idnumber").send_keys((dict_data[i])['last_name'])
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course2\"]/div[2]/input[2]").click()
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course3\"]/div[3]/input[2]").click()
sleep(5)
#课程开启操作
driver.find_element_by_xpath("//*[@id=\"course4\"]/div[2]/input[3]").click()
# a=driver.find_element_by_class_name("btn_switch").value
# a=1
#创建课程后将课程由默认状态“禁用”变更为“启用”
driver.find_element_by_css_selector("#tip_s2>label").click()
i += 1

对应csv文件所在位置设定如下图:

csv中文件内容如下:

运行成功截图:

2.将上方读取的csv文件内容写入到已经创建好的csv文件中。

 #读取csv文件再讲读取的数据写入csv文件
csvfile2 = open('E:\\script\\python-script\\demo_test_courses-w.csv','w',newline='')
writer=csv.writer(csvfile2)
i=0
writer.writerow(('first_name','last_name'))
while(i<row_num):
print((dict_data[i])['first_name'],(dict_data[i])['last_name'])
writer.writerow(((dict_data[i])['first_name'],(dict_data[i])['last_name']))
i += 1
csvfile2.close()

——————————————————————————————————————————

零散思路记录:

with open("E:\\script\\python-script\\demo_test_courses.csv","r") as csvfile:
    reader=[each for each in csv.DictReader(csvfile)]
for row in reader:
    print(row['first_name'],row['last_name'])
   '''
    reader = csv.reader(csvfile)
    for i,rows in enumerate(csvfile):
        if i==3:
            row=rows
            print(row)

'''
'''    
    rows=[row for row in reader]
    print(rows)
   
    row=csvfile.readline()
    for row in reader:
        for row in reader:
            print(reader.line_num,row[0])
            print(len(csvfile))
'''

二、通过txt文件批量导入数据,读取fullname和idnumber

 txtfile=open("E:\\script\\python-script\\demo_test_a\\demo_test_courses.txt","r")#引用的txt文件
un = txtfile.readline()#读取一行数据
i = 0
new = []#将读取的每一行数据以小数组subject为单元存放在一个大数组new中。
while(i <2):#此处的2随着txt文件中行数的变化去自定义输入
un=un.strip('\n')#去掉读取末尾的回车
subject=un.split(',')#以逗号为分隔符读取数据
new.append(subject)
#print(new[i])
print(subject[0])#fullname读取
print(subject[1])#idnumber读取
un=txtfile.readline()
i+=1
txtfile.close()

放到场景中的代码记录:

 from selenium import webdriver
from time import ctime,sleep
#import csv
import unittest,os,time
#通过txt文件参数化课程名和课程编号
txtfile = open("E:\\script\\python-script\\demo_test_a\\demo_test_courses.txt", "r") # 用户名文件
new = []
un = txtfile.readline() # 读取一行数据
#un = txtfile.readline()
#循环读取每一行
i = 0
while(i <2):
un = un.strip('\n') # 去掉读取末尾的回车
subject = un.split(',') # 以逗号为分隔符读取数据
new.append(subject)
#创建课程
driver = webdriver.Chrome()
driver.get("http://demo.pingnanlearning.com/test/login/index.php")
driver.find_element_by_id("username").send_keys("grace")
driver.find_element_by_id("password").send_keys("")
driver.find_element_by_id("loginbtn").click()
driver.find_element_by_link_text(u"系统管理").click()
driver.find_element_by_link_text(u"添加课程").click()
driver.find_element_by_id("").click()
driver.find_element_by_class_name("kc_btn_next").click()
driver.find_element_by_name("fullname").send_keys(subject[0])
driver.find_element_by_id("idnumber").send_keys(subject[1])
print(subject[0])
print(subject[1])
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course2\"]/div[2]/input[2]").click()
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course3\"]/div[3]/input[2]").click()
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course4\"]/div[2]/input[3]").click()
# a=driver.find_element_by_class_name("btn_switch").value
# a=1
#创建课程后将课程由默认状态“禁用”变更为“启用”
driver.find_element_by_css_selector("#tip_s2>label").click()
un = txtfile.readline()#读取txt文件中的下一行数据
i += 1#控制循环次数+1
txtfile.close()

文件在电脑上的位置及文件基本内容:

三、通过excel文件批量导入数据,读取fullname和idnumber

举例说明excel读取相关知识点:

 from selenium import webdriver
from time import ctime,sleep
import xlrd #通过xls文件参数化课程名和课程编号
xlsfile=r"E:\script\python-script\demo_test_a\demo_test_courses_xls.xls"#打开指定路径中的xls文件
book=xlrd.open_workbook(xlsfile)#得到Excel文件的book对象,实例化对象
sheet0 = book.sheet_by_index(0) # 通过sheet索引获得sheet对象
print("1、",sheet0)
sheet_name = book.sheet_names()[0]# 获得指定索引的sheet表名字
print ("2、",sheet_name)
sheet1 = book.sheet_by_name(sheet_name)# 通过sheet名字来获取,当然如果知道sheet名字就可以直接指定
nrows = sheet0.nrows # 获取行总数
print ("3、",nrows)
#循环打印每一行的内容
for i in range(nrows):
print( sheet1.row_values(i))
ncols = sheet0.ncols #获取列总数
print("4、",ncols)
row_data = sheet0.row_values(0) # 获得第1行的数据列表
print (row_data)
col_data = sheet0.col_values(0) # 获得第1列的数据列表
print("5、",col_data)
# 通过坐标读取表格中的数据
cell_value1 = sheet0.cell_value(0, 0)
print("6、",cell_value1)
cell_value2 = sheet0.cell_value(0, 1)
print ("7、",cell_value2)

对应成功图图和文件夹位置及文件内容:

demo环境通过excel批量创建课程代码及截图展示:

 from selenium import webdriver
from time import ctime,sleep
import xlrd #通过xls文件参数化课程名和课程编号
xlsfile=r"E:\script\python-script\demo_test_a\demo_test_courses_xls.xls"#打开指定路径中的xls文件
book=xlrd.open_workbook(xlsfile)#得到Excel文件的book对象,实例化对象
sheet0 = book.sheet_by_index(0) # 通过sheet索引获得sheet对象
print("1、",sheet0)
sheet_name = book.sheet_names()[0]#aaaaa 获得指定索引的sheet表名字
print ("2、",sheet_name)
sheet1 = book.sheet_by_name(sheet_name)# 通过sheet名字来获取,当然如果知道sheet名字就可以直接指定
nrows = sheet0.nrows # 获取行总数
print ("3、",nrows)
#循环打印每一行的内容
for i in range(nrows):
print( sheet1.row_values(i))
'''
ncols = sheet0.ncols #获取列总数
print("4、",ncols)
row_data = sheet0.row_values(0) # 获得第1行的数据列表
print (row_data)
col_data = sheet0.col_values(0) # 获得第1列的数据列表
print("5、",col_data)
'''
#循环读取每一行
i = 1
while(i < nrows): # 通过坐标读取表格中的数据
cell_value1 = sheet0.cell_value(i, 0)
#print("first_name:", cell_value1)
cell_value2 = sheet0.cell_value(i, 1)
#print("last_name:", cell_value2)
#创建课程
driver = webdriver.Chrome()
driver.get("http://demo.pingnanlearning.com/test/login/index.php")
driver.find_element_by_id("username").send_keys("grace")
driver.find_element_by_id("password").send_keys("")
driver.find_element_by_id("loginbtn").click()
driver.find_element_by_link_text(u"系统管理").click()
driver.find_element_by_link_text(u"添加课程").click()
driver.find_element_by_id("").click()
driver.find_element_by_class_name("kc_btn_next").click()
driver.find_element_by_name("fullname").send_keys(cell_value1)
driver.find_element_by_id("idnumber").send_keys(cell_value2)
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course2\"]/div[2]/input[2]").click()
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course3\"]/div[3]/input[2]").click()
sleep(5)
driver.find_element_by_xpath("//*[@id=\"course4\"]/div[2]/input[3]").click()
# a=driver.find_element_by_class_name("btn_switch").value
# a=1
#创建课程后将课程由默认状态“禁用”变更为“启用”
driver.find_element_by_css_selector("#tip_s2>label").click()
i += 1

对应文件位置及内容截图:

最新文章

  1. mysql的优化
  2. 单元测试地二蛋 先弄个两个原生模块1个原始的一个jq插件
  3. 如何在LIRE搜索中使用多特征
  4. .NET平台下的微信SDK(Rabbit.WeiXin)开源发布
  5. Tomcat长出现的内存溢出问题
  6. 限制页面内部链接访问源-HTML注释
  7. [Flex] ButtonBar系列——flex3 ButtonBar属性labelPlacement标签相对于指定图标的方向
  8. 两个STL网址 总结的很好 &amp;&amp; c++堆的网址
  9. 自动开机和自动关机设定方法(包括linux和windows)
  10. C#的数据类型、数据类型的转化
  11. redis对list进行的相关操作
  12. JAVA解决前端跨域问题。
  13. C#使用读写锁解决多线程并发写入文件时线程同步的问题
  14. FastJson用法
  15. Coding kata: get the top two teams in one group
  16. 20155316 Exp1 PC平台逆向破解(5)M
  17. 《Python》 文件操作
  18. NBUT 1224 Happiness Hotel 2010辽宁省赛
  19. nDPI深度数据包检测
  20. net与树莓派的情缘-安装SVN(三)

热门文章

  1. c语言的fopen
  2. [转]JVM运行时内存结构
  3. Ubuntu 12.04/13.04 安装 Oracle11gR2:该笔记已经陈旧!请参考后续的笔记
  4. Asp.net 程序优化js,css合并与压缩
  5. failed to push some refs to &#39;git@github.com:*/learngit.git&#39;
  6. Storm-源码分析-Streaming Grouping (backtype.storm.daemon.executor)
  7. .net多线程,线程异步,线程同步,并发问题---1---ShinePans
  8. 对double数据类型的数据保留两位小数,并且进行四舍五入
  9. 使用 XPath
  10. Android性能优化的一些方案