Python+selenium 技巧篇-读取excel执行登陆操作

我们可以用excel来记录自动化,然后读取excel来执行命令,excel可以很方便直观的管理我们录入的自动化。下面给大家演示一下Python+selenium自动化的实例,读取excel执行登陆操作。
首先如果想要操控excel需要两个库xlrd和xlwt,一个是读,一个是写。

本章我想通过python读取excel里我设置的一些字段,来执行一个登陆操作。

def read_xl():
	
	# 打开excel
	workbook = xlrd.open_workbook('login.xlsx')
	
	sheet = workbook.sheets()[0] # 代表第一个页签,excel是可以有多个页签的
	nrows = sheet.nrows # 看excel一共有多少行内容
	
	# 一行一行的读取内容,sheet.row_values(i)[0]代表该行的第一个单元格
	for i in range(nrows):
		sw(sheet.row_values(i)[0],sheet.row_values(i)[1],sheet.row_values(i)[2],sheet.row_values(i)[3],sheet.row_values(i)[5])

下面是我设置的excel字段,以及每个字段的含义。
Python+selenium 技巧篇-读取excel执行登陆操作_第1张图片
下面这是完整版,我是结合python+selenium来操控我的chrome浏览器,excel读取的字段通过我的sw()方法转化为对应操作浏览器的命令来执行。

当然这里的地址是内网的,是只有我才可以用的。excel附件里的登陆名和密码也是只有我自己才可以用的,这些需要你自己来设置。

Excel附件:小蓝枣的资源仓库 提取码: b2av

# -*- coding: UTF-8 -*-
# excel说:感觉自己被操控

# excel读写库
import xlrd
import xlwt

# selenium浏览器驱动
from selenium import webdriver
import time

# 初始化Chrome()
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(5) #单位秒

# 登陆
def login():
	# 我自己可用的内网ip地址
	url="http://172.20.52.71:8102"
	print("你的小可爱正在打开: "+url+"   请看好她!!!\n")
	driver.get(url)  

# excel读取
def read_xl():
	
	# 打开excel
	workbook = xlrd.open_workbook('login.xlsx')
	
	sheet = workbook.sheets()[0] # 代表第一个页签,excel是可以有多个页签的
	nrows = sheet.nrows # 看excel一共有多少行内容
	
	# 一行一行的读取内容,sheet.row_values(i)[0]代表该行的第一个单元格
	for i in range(nrows):
		sw(sheet.row_values(i)[0],sheet.row_values(i)[1],sheet.row_values(i)[2],sheet.row_values(i)[3],sheet.row_values(i)[5])

# 转化excel读取的操作
def sw(a,b,c,d,e):
	k=1
	if a=='click':
		action(e)
		sw_click(b,c)
	elif a=='input':
		action(e)
		sw_input(b,c,d)
	elif a=='wait':
		action("等待")
		sw_wait(d)
	elif a=='open':
		action(e)
		sw_open(d)
		print('open操作无效,如有需要请找管理员对open解禁')
	else:
		k=0
	time.sleep(2)
	if k==1:
		print("该命令执行结束!\n")

def action(e):
	print("正在进行: "+e+"   请稍后...")
	
def sw_click(b,c):
	if b=='id':
		driver.find_element_by_id(c).click()
	elif b=='xpath':
		driver.find_element_by_xpath(c).click()

def sw_input(b,c,d):
	if b=='id':
		driver.find_element_by_id(c).send_keys(d)
	elif b=='xpath':
		driver.find_element_by_xpath(c).send_keys(d)

def sw_wait(d):
	time.sleep(d/1000)

def sw_open(d):
	time.sleep(1)
		
login()
read_xl()

读取执行内容的同时,后台会同时播报正在执行的命令。
Python+selenium 技巧篇-读取excel执行登陆操作_第2张图片
哈哈,怎么样?喜欢的可以点个赞❤!

你可能感兴趣的:(Excel,实用技巧,python+selenium,Python智能自动化机器人)