被测产品中文件上传的功能非常普遍,一般情况下我们需要将准备好的文件放在预定的路径下,然后在自动化测试的脚本中,去预置的路径下获取文件即可。
准确说,这不是Selenium文件上传的两种方式,而是UI自动化中文件上传的两种方式。
通过Selenium上传文件的方式要求UI界面中有可输入文件路径的input输入框,但当被测产品是采用调用本地Windows文件系统窗口的方式进行文件上传时,Selenium就无能为力了,因为这分属于两个完全不同的领域。
Selenium是通过发送js脚本驱动浏览器,而Windows系统窗口就完全不在Selenium的能力范围内。因此,当被测产品与Windows系统进行交互时,就需要使用C端自动化的相关框架,这类框架有很多选择,此次选择的是PyAutoGUI。
- Selenium上传:UI界面中存在Input输入框(也有可能是隐藏的),通过send_keys
- pyautoGUI上传:调用windowsUI自动化框架
先看第一种比较普遍使用的Selenium上传方式:
def uploadFile(self, locator, filepath):
'''
描述:上传文件
locator : 元素定位
filepath : 上传文件的绝对路径
'''
ele: WebElement = self.findElement(locator)
ele.send_keys(filepath)
<