python制作软件excel_利用Python制作一个 截图+Excel操作浏览器小工具

该博客介绍了如何使用Python编写一个工具,该工具结合Excel数据和截图技术,实现对浏览器的自动化操作。通过GetData.py读取Excel中的操作指令,GetPosition.py匹配屏幕上的目标元素位置,RunData.py根据指令执行相应的网页操作,如输入网址、点击元素等。
摘要由CSDN通过智能技术生成

代码如下:

GetData.py

import xlrd

class ReadExcel():

def __init__(self,file):

self.open_excel = xlrd.open_workbook(file)

# 获取Sheet名

def GetSheetName(self):

sheet_name = self.open_excel.sheet_names()

return sheet_name

# 获取数据

def ExcelData(self,sheetname):

sheet = self.open_excel.sheet_by_name(sheetname)

# 第一行作为dict的key

keys = sheet.row_values(0)

# nrows:总行数,ncols:总列数

nrows,ncols = sheet.nrows,sheet.ncols

# 整个sheet的数据

y = []

if nrows < 2:

print ('总行数少于1')

else:

# 循环取行的数据

for i in range(1,nrows):

# 一行的数据

k = {}

# 循环取列的数据

for j in sheet.row_values(i):

# 获取当前取的数据下标

data_index = sheet.row_values(i).index(j)

# 写入字典,第一行作为key

k[keys[data_index]] = j

y.append(k)

return y

if __name__ == '__main__':

E = ReadExcel(r'./Operation.xlsx')

print (E.GetSheetName(),E.ExcelData('Sheet1'))

GetPosition.py

import aircv as ac

import sys

def matchImg(imgsrc,imgobj,confidencevalue=0.9):#imgsrc=原始图像,imgobj=待查找的图片

imsrc = ac.imread(imgsrc)

imobj = ac.imread(imgobj)

match_result = ac.find_all_template(imsrc,imobj,confidencevalue) # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)}

if match_result:

return match_result[0]['result']

else:

input('没有找到图片,结束运行')

sys.exit()

if __name__ == '__main__':

position = matchImg(r'.\imgobj.png',r'F:\test\rrrr\222.png',confidencevalue = 0.9)

RunData.py

from GetData import ReadExcel

from GetPosition import matchImg

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

import time

class RunData():

def __init__(self):

self.driver = webdriver.Chrome()

def ProcessExcelData(self,data):

for i in data:

if i['操作图片路径']:

self.driver.get_screenshot_as_file(r'.\imgobj.png')

size = matchImg(r'.\imgobj.png',r'%s'%(i['操作图片路径']))

time.sleep(1)

if i['操作方式'] == '输入网址':

self.driver.get(i['值'])

elif i['操作方式'] == '输入':

ActionChains(self.driver).move_by_offset(size[0], size[1]).click().send_keys(i['值']).perform()

ActionChains(self.driver).move_by_offset(-size[0], -size[1]).perform()

elif i['操作方式'] == '点击':

ActionChains(self.driver).move_by_offset(size[0], size[1]).click().perform()

ActionChains(self.driver).move_by_offset(-size[0], -size[1]).perform()

elif i['操作方式'] == '等待':

time.sleep(eval(i['值']))

elif i['操作方式'] == '关闭浏览器':

self.driver.quit()

if __name__ == '__main__':

E = ReadExcel(r'./Operation.xlsx')

Sheet = E.GetSheetName()

for j in Sheet:

TestData = E.ExcelData(j)

R = RunData()

R.ProcessExcelData(TestData)

原理;

GetData.py获取excel操作步骤,GetPosition.py通过截图获取当前页面操作的坐标点,再通过RunData.py文件进行操作

使用步骤:

1.截取需要操作的元素

4d9478250c676fcfe850ca9c1a754638.png

2.在excel输入信息

4df50cd5029ad5756117008475db082b.png

3.运行RunData.py文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值