①被测产品的UI界面中存在可输入文件路径的input输入框(该input框元素可能是可见元素,也有可能是隐藏元素),可以通过 send_keys('文件路径') 函数。
②被测产品是采用调用本地Windows文件系统窗口的方式进行文件上传。(该方式进行文件上传时,selenium工具无能为力。selenium工具是通过发送js脚本来驱动浏览器,而Windows系统窗口就完全不在Selenium的能力范围内),调用windows操作系统的UI自动化框架。当被测产品与Windows系统进行交互时,就需要使用C端自动化的相关框架,这类框架有很多选择,此次选择的是PyAutoGUI。
第一种:
selenium UI自动化代码如下:
from selenium import webdriver
driver.find_element_by_css_selector('form>#file').send_keys(r'C:\Users\Administrator\Desktop\1.txt')
driver.find_element_by_css_selector('form>input[type="submit"]').click()
第二种:
pyautogui为第三方包,需要 pip install pyautogui 进行安装后,在脚本中 import 导入即可使用。
def cert_choose_certfile(self, filepath): self.driver.base_click(page.cert_upload_certfile) # D:\cacert123.pem try: sleep(10) pyautogui.write(filepath) # 输入文件绝对路径 pyautogui.press('enter', 2) # 按2次回车键(按2次是为了防止出错) except Exception as e: e.args = ('上传文件操作异常',) raise e