背景:需要批量上传门店的logo,页面不是按照input的file类型写的。

借助window的工具Autoit 捕捉windows的元素

scite写脚本

compile script to(.exe)将脚本文件转换成windows系统可执行的exe文件

用pandas处理excle文件获取所有的门店

image.png

Autoit 下载地址:

image.png

下载上面两个文件,下载成功,直接下一步下一步安装即可

打开Autoit 捕捉元素

image.png

点击页面上传logo

image.png

将Autoit 蓝色放光拖动到图片所在路径中图示的地方,捕捉到 标红的一些元素,后续使用

image.png

image.png

打开sciTE 编写脚本:

image.png

要想 显示编辑中文 ,有几个地方设置一下:

运行SciTE,点Option->Open User Options File,增加两行:

code.page=65001

output.code.page=65001

这是使用UTF-8编码,或者如果你使用GBK、GB2312(Windows下一般都是),那就是:

code.page=936

output.code.page=936

然后保存(File->Save)。如果临时需要用UTF-8,点File->Encoding->UTF-8

image.png

ControlFocus("打开","","Edit1")

WinWait("[CLASS:#32770]","",10)

ControlSetText("打开","","Edit1","C:\Users\user\Desktop\ltsk.png")

Sleep(3000)

ControlClick("打开","","Button1")

Sleep(2000)

打开compile script to(.exe)将脚本文件转换成windows系统可执行的exe文件,注意路径

image.png

image.png

所有门店在excle的store的sheet中,供后续使用

image.png

python文件代码如下

from time import sleep

from selenium import webdriver

from xxx.login import login_shop

import os

import pandas as pd

from xxx.get_excle_path import get_excle_path

# 门店logo

def logo(base_url,driver):

# 取项目路径对应excle的store表格

excle_file = get_excle_path()

sheet_name = 'store'

df = pd.DataFrame(pd.read_excel(excle_file, sheet_name=sheet_name))

# 数据量小的情况下直接获取所有门店列表数据 数据量大的时候用迭代器

store_no = df['store_no']

# 循环执行需要上传logo的门店 每个门店的链接不一样带有门店名字

for i in range(1,10):

url_path = '/ssssss?ccc=%s' % store_no[i]

driver.get(base_url + url_path)

sleep(1)

# 点击上传图片

driver.find_element_by_css_selector(".form-group:nth-child(1) .ant-upload-text").click()

sleep(1)

# 执行上传图片的操作

os.system(r"C:\Users\user\Desktop\logo.exe")

# input file 类型的适用下面这种

# driver.find_element_by_id("logo-file").send_keys(r'C:\Users\user\Desktop\ltsk.png')

sleep(5)

# 保存

driver.find_element_by_id('saveBtn').click()

sleep(4)

# 确定

driver.find_element_by_css_selector('.confirm:nth-child(1)').click()

if __name__ == "__main__":

base_url = "http://testapi.liantuofu.com"

userName = "zzdgsh"

passWord = "111qqq"

driver = webdriver.Chrome()

login_shop(driver, base_url, userName, passWord)

driver.get(base_url + "/index")

sleep(1)

logo(base_url,driver)

print("上传logo成功!")

至此,就可以批量上传所有门店logo了

python批量上传图片,python+selenium+Autoit+pandas 批量上传图片相关推荐

  1. pandas 批量读取excel_怎样使用Pandas批量拆分与合并Excel文件?

    原始文件.合并后的文件: 拆分后的小文件: 实例演示:将一个大Excel等份拆成多个Excel 将多个小Excel合并成一个大Excel并标记来源work_dir="./course_dat ...

  2. python 批量读取csv_Python Pandas批量读取csv文件到dataframe的方法

    PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径.然后定义一个列表,读取文件后再使用concat合并读取到的数据. #读取数据 import p ...

  3. python 批量读取csv 文件到dataframe_python 批量读取csv_Python Pandas批量读取csv文件到dataframe的方法...

    PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径.然后定义一个列表,读取文件后再使用concat合并读取到的数据. #读取数据 import p ...

  4. python时间戳转换并pandas批量转换时间戳

    时间戳转时间 时间格式 年月日时分秒 import time timeStamp=1303132933#时间戳 timeArray = time.localtime(timeStamp) otherS ...

  5. 使用python的zipfile模块巧解word批量生成问题

    使用python的zipfile模块巧解word批量生成问题 任务需求 任务拆解 任务方案 方案一:使用python-docx.Document读取word文档 方案二:zipfile巧解word文档 ...

  6. python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片

    Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...

  7. python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程

    按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...

  8. python下载网页中的pdf文件_【Python】Python的urllib模块、urllib2模块批量进行网页下载文件...

    由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载.正好Python有相关的模块,所以写了个程序来进行PDF文件的下载,顺便熟悉了Python的url ...

  9. python修改电脑名称_python 脚本之批量更改主机名

    今天接到上面工作任务,让更改多台主机的主机名称.使用python paramiko Module,随手写了一个批量修改主机名的脚本. #!/usr/bin/env python #-*- coding ...

最新文章

  1. python3 异步错误 asyncio.Semaphore RuntimeError: Task got Future attached to a different loop
  2. 10分钟带你探索css中更为奇妙的奥秘
  3. red hat enterprise linux 7关闭防火墙的方法
  4. 蓝桥杯 历届试题 带分数
  5. 电脑模拟器哪个好_学习电脑教程:网线wifi哪个信号好
  6. 《C++ Primer Plus》16.2 智能指针模板类
  7. Ubuntu安装JDK教程
  8. c语言冒泡排序算法解析
  9. 大容量光传输技术进展与 400G C+L 系统研究
  10. flickr的奇怪的认证过程
  11. c++解一元三次方程
  12. 2021-10-28 MyBatis学习
  13. FTP上传或下载偶尔出现文件为空
  14. 淘宝反腐!26家网店因贿赂淘宝小二被关停
  15. 函数周期表丨信息丨值丨ISONORAFTER
  16. 在ibatis中查询返回List集合的问题
  17. 位移模块\A6210\TSI\CSI6500\EPRO
  18. 性能测试场景设计(好文参考)
  19. 0ctf2015_freenote
  20. 老题再谈----有关冲击波病毒

热门文章

  1. 联合体(共同体)union V{...}v;
  2. 为什么用void*做参数
  3. 细说 Angular 的自定义表单控件
  4. MYSQL:餐厅点菜、管理员工的数据库。大学数据库课程大作业(初学者,入门,用的基础知识)
  5. vscode对比vs:花落谁家
  6. 动态创建WebService
  7. 中年程序员哀叹:失业两月,开始怀疑人生,找份工作怎么这么难!
  8. Docker 在 M1 Mac arm64架构上构建 amd64镜像。
  9. 进位与借位(虚函数和多态)
  10. 我发现买不起自己出版的书了,这到底是咋回事?