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来操控我的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()
读取执行内容的同时,后台会同时播报正在执行的命令。

哈哈,怎么样?喜欢的可以点个赞❤!
各位好,我是csdn的小蓝枣,现在我的博客已经同步到博客园啦,欢迎大家关注哈!也欢迎大家关注我的公众号Py_JSQY!每天会更新有趣的科技文!哈哈!
浙公网安备 33010602011771号