Selenium处理文件上传

原文地址:http://www.testertechnology.com/posts/detail?id=696
在Web自动化测试过程中,有时候我们会遇到文件上传的场景,对于文件上传,一般有两种情况。

1、input标签文件上传

带有input标签并且type属性的值为file可直接使用send_keys方法上传文件。

null

此时就非常简单了,我们可以直接通过send_keys输入图片路径即可

driver.get(‘http://www.testertechnology.com/forum’)
driver.find_element_by_name(‘file’).send_keys(‘D:/code/test.png’)

2、非input标签AutoIt上传文件

对于非input标签的文件上传我们使用AutoIT3,最后测试用例去调用其生成的exe文件。

实现步骤:

1.打开文件上传场景,点击“选择文件”弹出Windows弹框

2.打开AutoIt Windows Info工具,鼠标点击Finder Tool,鼠标将变成一个小风扇形状的图标,按住鼠标左键拖动到需要识别的控件上

null

第前两步通过AutoIt Windows Info获取windows弹框信息:

窗口的title为“打开”,标题的Class为“#32770”。

文件名输入框的class 为“Edit”,Instance为“1” ,所以Classname为“Edit1”。

打开按钮的class 为“Button”,Instance为“1” ,所以Classname为“Button1”

3.根据AutoIt Windows Info 所识别到的控件信息打开SciTE Script Editor编辑器,编写脚本

null

ControlFocus()方法用于识别Window窗口

WinWait()设置10秒钟用于等待窗口的显示

ControlSetText()用于向“文件名”输入框内输入本地文件的路径

ControlClick()用于点击上传窗口中的“打开”按钮

此时在FIle中保存此脚本为名称test.au3文件

  1. 打开Compile Script to.exe工具,点击“Browse”选择upfile.au3文件,点击“Convert”按钮将其生成为test.exe程序

null

然后开始看代码吧:

driver.get(‘http://www.testertechnology.com/forum’)
driver.find_element_by_id(‘updateico’).click()#点击图片上传Button
time.sleep(5)
os.system(“D:\code\test.exe”)#执行图片上传动作,需要在管理员权限下

此时就完成了图片上传。

没有任何回答

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值