selenium+python自动化78-autoit参数化与批量上传功能的实现


Posted in Python onMarch 04, 2021

前言

前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片。
这样每次调用的时候,在命令行里面加一个文件路径的参数就行。

一、命令行参数

1.参数化传入的参数,可以通过autoit的命令行参数:

myProg.exe param1 “This is a string parameter” 99

在脚本中,可用以下变量获取命令行参数:

$CmdLine[0] ; = 3
$CmdLine[1] ; = param1
$CmdLine[2] ; = "This is a string parameter"
$CmdLine[3] ; = 99
$CmdLineRaw ; = 'param1 "This is a string parameter" 99'
  • $CmdLine[0] 获取的是命令行参数的总数,在上例中$CmdLine[0]=3
  • $CmdLine[1]~$CmdLine[63] 获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的
  • $CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数

2.将如下代码保存为.exe文件后(文件名随便取一个:cmdjpg.exe),在cmd执行一次,看是否成功

WinActivate("文件上传");
ControlSetText("文件上传", "", "Edit1", $CmdLine[1] );
Sleep(2000);
ControlClick("文件上传", "", "Button1");

selenium+python自动化78-autoit参数化与批量上传功能的实现

3.用python代码执行

# 需上传图片的路径
file_path = "D:\\1.png"

# 执行autoit上传文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_path) # 你自己本地的

二、批量上传图片

1.方法一:先把要上传的图片放到一个list下,然后for循环

# 把需要上传的图片放到一个list下
all_png = ["D:\\1.png", "D:\\2.png", "D:\\3.png", "D:\\4.png"]

# 循环点击上传图片
for i in all_png:
  # 1点开编辑器图片
 
  # 2点开文件上传按钮

  # 执行autoit上传文件
  os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % i) # 你自己本地的.exe路径
  time.sleep(3)

2.方法二:把要上传的图片编号,如:0.png , 1.png, 2.png这种(从0开始编号),放到同一目录下,然后for循环

# 循环点击上传图片
for i in range(4):
  # 1点开编辑器图片

  # 2点开文件上传按钮

  # 文件名
  file_name = "D:\\%s.png" % i # 参数化路径名称

  # 执行autoit上传文件
  os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_name) # 你自己本地的.exe路径
  time.sleep(3)

三、参考代码

# coding:utf-8
from selenium import webdriver
import time
import os
# 加载配置文件实现免登录
profileDir = r'C:\Users\Gloria\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default' # 你自己电脑的配置文件路径,不要抄我的
profile = webdriver.FirefoxProfile(profileDir)
driver = webdriver.Firefox(profile)
driver.implicitly_wait(30)
driver.get("http://www.cnblogs.com/yoyoketang/")
driver.find_element_by_link_text("新随笔").click()
time.sleep(3)

# 方法一:把需要上传的图片放到一个list下
all_png = ["D:\\1.png", "D:\\2.png", "D:\\3.png", "D:\\4.png"]

for i in all_png:
  # 点开编辑器图片
  driver.find_elements_by_css_selector("img.mceIcon")[0].click()
  time.sleep(3)
  # 定位所有iframe,取第二个
  iframe = driver.find_elements_by_tag_name('iframe')[1]
  # 切换到iframe上
  driver.switch_to_frame(iframe)
  # 点开文件上传按钮
  driver.find_element_by_name('file').click()
  time.sleep(3)
  # 执行autoit上传文件
  print i
  os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % i) # 你自己本地的.exe路径
  time.sleep(3)
  driver.switch_to_default_content() # 切回到主页面


# # 方法二:循环点击上传图片
# for i in range(4):
#   # 1点开编辑器图片
# 
#   # 2点开文件上传按钮
# 
#   # 文件名
#   file_name = "D:\\%s.png" % i # 参数化路径名称
# 
#   # 执行autoit上传文件
#   os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_name) # 你自己本地的.exe路径
#   time.sleep(3)

到此这篇关于selenium+python自动化78-autoit参数化与批量上传的文章就介绍到这了,更多相关python自动化批量上传内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python深入学习之内存管理
Aug 31 Python
Python OS模块常用函数说明
May 23 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
django模板结构优化的方法
Feb 28 Python
浅谈python常用程序算法
Mar 22 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
基于Django框架的权限组件rbac实例讲解
Aug 31 Python
关于python中模块和重载的问题
Nov 02 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 #Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 #Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 #Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 #Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 #Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 #Python
python 指定源路径来解决import问题的操作
Mar 04 #Python
You might like
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
php之可变变量的实例详解
2017/09/12 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
Python的print用法示例
2014/02/11 Python
Python表示矩阵的方法分析
2017/05/26 Python
对python的输出和输出格式详解
2018/12/08 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
python中reload重载实例用法
2020/12/15 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
交通事故调解协议书
2014/04/16 职场文书
学校安全防火方案
2014/06/07 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
瘦西湖导游词
2015/02/03 职场文书
交通事故被告代理词
2015/05/23 职场文书
决心书格式范文
2015/09/23 职场文书
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技