日常在访问页面时,文件上传与下载操作也常常用到,因此在Web自动化测试中也会遇到文件上传的情况。针对上传功能,WebDriver并没有提供对应的方法。 日常在访问页面时,文件上传与下载操作也常常用到,因此在Web自动化测试中也会遇到文件上传的情况。针对上传功能,WebDriver并没有提供对应的方法。针对上传文件的场景主要有两种解决思路:
同步视频知识与系列知识内容,可关注:【公众号】:柒哥测试;【WX】:Lee-890;
设计uploadfile.html页面,页面代码如下:
<html> <body> <div > <form name="form1" action="fileUpload.PHP" method="post" enctype="multipart/form-data"> <label for="file">File:</label> <input type="file" name="file" id="file" /> <br /> <input type="hidden" name="multi" value="false"/> <input type="submit" name="submit" value="Submit Single" /> </form> </div> </body></html>页面展现效果,如图所示。
作者的D盘下,存放有一个命名为Image.png的图片,要在uploadfile.html页面上传该图片,代码如下:
from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()driver.get("file:///D:/uploadfile.html")driver.find_element_by_xpath("//input[@name='file']").send_keys("d:\\Image.png")sleep(2)driver.quit()运行代码,可观察到,uploadfile.html页面中上传了Image.png文件,如图所示。
关于非input标签的文件上传,可借助AutoIt。
AutoIt目前版本是v3.3.14.*,AutoIt是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。
下载安装Autoit。
进入https://www.autoitscript.com/site/autoit/downloads,在该页面中找到下载区域,单击下载安装,如图所示。
Autoit 下载完毕后的文件为autoit-v3-setup.exe,下载后进行安装,win10系统上运行安装时,会给出提示信息,单击【运行】按钮,进行安装即可,如图所示。
安装过程中,会检测到操做系统是64位,此时可以选择【use native x64…】。
Autoit 主要应用其中的三个功能
以本节提供的Autoit.html页面为例,页面展现效果如图所示。

通过Autoit实现上传文件步骤:
首先打开AutoIt Windows Info 工具,鼠标单击Finder Tool,当鼠标变成一个小风扇形状的图标后,按住鼠标左键不要松开,拖动小风扇图标到需要识别的控件【文件编辑框】上,如图所示。
可到编辑框的信息如下:
Basic Window InfoTitle:打开Class:#32770Basic Control infoClass:Edit Instance:1鼠标单击Finder Tool,拖动小风扇图标到【打开】按钮控件,如图所示。
可到编辑框的信息如下:
Basic Window InfoTitle:打开Class:# 32770Basic Control infoClass:Button Instance:1根据AutoIt Windows Info 所识别到的控件信息打开SciTE Script Editor编辑器,编写脚本,如图所示。
脚本内容。
;ControlFocus("title","text",controlID) Edit1=Edit instance 1WinActivate("打开")ControlFocus("打开", "","Edit1"); Wait 10 seconds for the Upload window to appearWinWait("[CLASS:#32770]","",10); Set the File name text on the Edit fieldControlSetText("打开", "", "Edit1", "D:\Image.png")Sleep(2000); Click on the Open buttonControlClick("打开", "","Button1");代码解释:
打开Compile Script to.exe工具,将前面保存的AutoitScript.au3脚本文件生成为exe可执行文件D:\ AutoitScript.exe,如图所示。
编写自动化脚本,调用D:\ AutoitScript.exe实现Autoit.html文件上传。
from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.keys import Keysimport osdriver = webdriver.Firefox()driver.implicitly_wait(60)# driver = webdriver.Firefox()driver.get("file:///D:/Auit.html")sleep(6)driver.find_element_by_xpath("//*[@id='rt_rt_1e282o8sm1b521dccvg1m3o1mpv1']/label").click()os.system("D:\\AutoitScript.exe")如果你觉的文章读的不过瘾,可以查看详细的视频教程。
【2021】UI自动化测试:Selenium3自动化测试
https://ke.qq.com/course/3172187?tuin=9c43f38e
《全栈测试系列视频》课程
地址:https://ke.qq.com/course/2525707?tuin=9c43f38e
图书京东、当当有售
京东:https://item.jd.com/12784287.html
当当:http://product.dangdang.com/29177828.html)!
同步视频知识与系列知识内容,可关注:【公众号】:柒哥测试;【WX】:Lee-890