selenium Python实现附件上传

对于web页面的上传功能一般有两类实现方式:一类是将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器;另一个类是插件上传,一般基于flash/javascript或者Ajax等技术实现上传功能。

一.input标签

input标签可以直接通过send_keys()方法上传附件,具体方法可百度。以下重点说明基于Autolt实现上传的方法。

二.基于Autolt实现上传

1.下载并安装Autolt。官方网站:https://www.autoitscript.com/site/

2.安装成功后打开AutoIt Windows Info工具。鼠标点击Finder Tool变成扇叶指针,按住鼠标左键拖动到待识别的控件(文件名),获取控件信息。获得的文件名信息,其中Basic Window info中Title为“打开”,Class是“#32770”;Basic Control info中Class是“Edti”,instance是“1”

3.获取打开按钮的控件信息,方法同步骤2,记录获取到的信息

4.打开SciTE Script Editor编辑器,根据获取到的控件信息,编写脚本

WinWait()设置5秒用于等待上传窗口的显示
ControlFocus()把输入焦点定位到上传文本框中
ControlSetText()输入文件路径
sleep 等待上传时间,单位毫秒
ControllClick()点击打开按钮,开始上传

5.脚本编写完成后,可通过Tools-->GO运行脚本,运行正常,将其保存为.au3格式

6.打开Compile Script to.ext工具,将步骤5中生成的文件转换为exe可执行文件。

 生成如下文件

7.通过自动化测试脚本调用up.exe文件

#打开上传窗口
driver.find_element_by_xpath("//*[@id='filePicker']").click()
#调用up.exe文件
os.system("C:UsersguorfDesktopup.exe")
原文地址:https://www.cnblogs.com/blogofzxf/p/10373618.html