且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python+selenium 自动化-读取excel记录的脚本执行登陆操作实战演示

更新时间:2022-05-22 02:22:16

我们可以用 excel 来记录自动化,然后读取 excel 来执行命令,excel 可以很方便直观的管理我们录入的自动化。下面给大家演示一下 Python+selenium 自动化的实例,读取 excel 执行登陆操作。

首先如果想要操控 excel 需要两个库 xlrdxlwt,一个是读,一个是写。

本章我想通过 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记录的脚本执行登陆操作实战演示

下面这是完整版,我是结合 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.xx.xx: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记录的脚本执行登陆操作实战演示

喜欢的可以点个赞❤!