Selenium自动化测试(三)——文件上传处理-TD文件

Selenium自动化测试(三)——文件上传处理

在UI测试时,经常碰到上传文件功能,一般情况下可采用两种方法进行模拟,第一种普通上传,即直接传文件路径;第二种插件上传,采用AutoIt方法。

1)普通上传文件

普通的上传是将本地文件的路径传到input标签中,所以可以直接使用send_keys()来实现

#上传文件的html代码

<tr>

<td align="right">上传文件:</td>

<td>

<input class="inputBg" type="file" size="45" name="message_img">

</td>

</tr>

#先定位到该上传文件按钮,然后使用send_keys传图片路径,实现上传功能

driver.find_element_by_name("message_img").send_keys(“D:\\11\\a.webp”)

该种方法实现比较简单,一般适用于通过input标签实现的上传,看作一个输入框,将上传文件路径传给程序。但有些上传如果采用JavaScript或Ajax等技术实现的上传,该种方法不适用,此时一般采用AutoIt工具上传

2)AutoIt工具上传文件

安装AutoIt工具:https://www.autoitscript.com/site/

AutoIt工具安装完后,会有三个程序,分别如下:

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

SciTE Script Editor:用于编写AutoIt脚本

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

具体操作如下:

第一步、识别Windows控件的信息(AutoIt Windows Info)

主要识别两个信息,一个是文件名输入框,另一个是打开按钮

Selenium自动化测试(三)——文件上传处理

Selenium自动化测试(三)——文件上传处理

第二步、编写AutoIt脚本(SciTE Script Editor)

;进行聚焦,识别Windows窗口

ControlFocus("[Class:#32770]","","Edit1")

;等待

WinWait("[Class:#32770]","",5)

#文件名输入框输入上传文件路径

ControlSetText("[Class:#32770]","","Edit1","D:\11\a.webp")

Sleep(2000)

#点击打开按钮

ControlClick("[Class:#32770]","","Button1")

备注:第一个参数使用控件的titile进行定位,但经常无法定位到,建议使用Class

第三步、生成exe执行文件(Compile Script to.exe)

Selenium自动化测试(三)——文件上传处理

保存后,点击Tools—Go—生成exe文件

第四步、执行生成的exe文件进行文件上传,在python脚本中添加下面代码,让脚本执行exe文件上传程序

import os

#点击“选择文件”按钮,弹出上传框

driver.find_element_by_name("message_img").click()

#选择上传文件,进行上传

os.system("D:\\11\\test3.exe")

推荐阅读