自动化测试——Selenium借助pywinauto实现文件上传/下载

在利用Selenium进行Web自动化测试,遇到如下的Windows窗口进行上传、下载操作时,可以通过pywinauto进行操作。上传窗口如下:

自动化测试——Selenium借助pywinauto实现文件上传/下载

使用pywinauto,需知Windows窗口控件的class,方可对其进行操作,通过Microsoft Spy++,即可获取控件的class,如下图:

自动化测试——Selenium借助pywinauto实现文件上传/下载

示例代码如下:

from pywinauto import application

# 使用pywinauto进行上传操作
app = application.Application()
window = app.window_(class_name = "#32770")
# 文件所在路径不能含有空格
window["Edit"].TypeKeys(r"C:	est.jpg")
window["ScrollBar"].Click()
window[u"打开(O)"].Click()

下载操作同理。

注:在实际操作过程中,当输入图片所在路径时,弹出窗口可能会出现失去焦点,导致点击打开按钮无效的情况,此时可以通过点击Windows弹出页面的某一控件使页面重新获得焦点,如点击滚动条。