python+selenium+autoit实现文件上传功能

作者:mrr 时间:2021-01-16 12:00:04 

问题

在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下

解决方案

第一种:type=file的上传文件,类似如下的

python+selenium+autoit实现文件上传功能

使用类似这样的代码就可以完成:


driver.find_element('name','file').send_keys('./小强测试品牌.png')

第二种:就是第一种除外的,实现起来较为麻烦,这里用到了autoit,大致步骤如下:

1、下载并安装autoit,之后在开始菜单可以看到如下

python+selenium+autoit实现文件上传功能

AutoIt Windows Info 用于识别Windows控件信息

Compile Script to.exe 用于将AutoIt生成 exe 执行文件

Run Script 用于执行AutoIt脚本

SciTE Script Editor 用于编写AutoIt脚本

2、上传功能如下

python+selenium+autoit实现文件上传功能

3、识别元素,主要是上图中的文件名输入框和打开按钮,使用AutoIt Windows Info完成,记录结果如下:

文件名输入框的class 为“Edit”,Instance为“1”

打开按钮的class 为“Button”,Instance为“1”

4、编写脚本,使用SciTE Script Editor,内容如下:


ControlFocus("文件上传", "","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("文件上传", "", "Edit1","D:python_workspaceQiangSEAutopic小强测试品牌.jpg")
Sleep(2000)
ControlClick("文件上传", "","Button1");

上述代码 * 别需要注意“文件上传”字样是你点击上传按钮之后弹出的对话框的title,可能每个系统会不一样

5、验证脚本

保证页面的上传对话框打开,然后运行脚本tools>go

6、打开Compile Script to.exe工具,将其生成为exe可执行文件

python+selenium+autoit实现文件上传功能

7、python脚本中调用


up=self.driver.find_element('class name','avatar-uploader-trigger')
up.find_element('class name','ant-btn').click()
os.system('D:\python_workspace\QiangSEAuto\upload.exe')
time.sleep(20)

其他

其实还有其他的解决方法,感兴趣的自行研究吧,比如还可以利用如下的方式:

Python pywin32库,识别对话框句柄,进而操作

SendKeys 库

keybd_event 模拟按键

总结

以上所述是小编给大家介绍的python+selenium+autoit实现文件上传网站的支持!

来源:http://www.tuicool.com/articles/MFrmmaf

标签:python,文件上传,selenium,autoit
0
投稿

猜你喜欢

  • python生成指定长度的随机数密码

    2021-01-24 23:53:17
  • 可用于监控 mysql Master Slave 状态的python代码

    2023-01-05 07:39:30
  • Python基于递归实现电话号码映射功能示例

    2023-11-15 09:38:39
  • openCV实现图像融合的示例代码

    2022-05-20 03:28:16
  • Python学习pygal绘制线图代码分享

    2022-12-02 10:51:48
  • 基于Python实现股票数据分析的可视化

    2021-06-04 16:11:36
  • python 读取文件并替换字段的实例

    2022-10-18 05:12:21
  • 使用Python编写一个最基础的代码解释器的要点解析

    2023-07-16 11:47:22
  • Python实现爬取需要登录的网站完整示例

    2022-08-09 11:40:33
  • python django model联合主键的例子

    2023-10-09 19:18:17
  • Django分页查询并返回jsons数据(中文乱码解决方法)

    2022-12-02 22:44:20
  • Python opencv医学处理的实现过程

    2021-11-19 01:51:47
  • python基础入门之字典和集合

    2022-02-21 03:47:19
  • H5+css3+js搭建带验证码的登录页面

    2023-08-30 16:15:54
  • MySQL权限详解

    2011-02-16 12:20:00
  • 排版自适应提升可访问性

    2009-04-08 12:47:00
  • python logging日志打印过程解析

    2023-11-03 13:04:09
  • python批量读取txt文件为DataFrame的方法

    2021-09-29 12:04:21
  • Python中字符编码简介、方法及使用建议

    2021-10-11 21:58:33
  • python数据可视化使用pyfinance分析证券收益示例详解

    2022-05-24 06:59:13
  • asp之家 网络编程 m.aspxhome.com