Python页面自动化文件上传两种方式
Python页面自动化测试之文件上传的两种方式——广州_vivi最近教学过程,学员项目出现测试上传文件无法执行的情况,分析发现学员项目的上传按钮并不是input按钮,导致无法使用直接定位元素方式进行文件的上传。用百度首页-图片上传搜索进行举例,虽然该按钮也是input按钮,但是该文章也有一定的参考意义。方法一:适用于input标签使用selenium定位到元素后,直接sendkeys,输入要上传文
·
Python页面自动化测试之文件上传的两种方式
——广州_vivi
最近教学过程,学员项目出现测试上传文件无法执行的情况,分析发现学员项目的上传按钮并不是input按钮,导致无法使用直接定位元素方式进行文件的上传。
用百度首页-图片上传搜索进行举例,虽然该按钮也是input按钮,但是该文章也有一定的参考意义。
方法一:适用于input标签
使用selenium定位到元素后,直接sendkeys,输入要上传文件的绝对地址
- from selenium import webdriver #从selenium库中导入webdriver包
- from time import sleep
- driver = webdriver.Chrome()
- url = 'https://www.baidu.com/'
- driver.get(url)
- driver.maximize_window()
- driver.find_element_by_xpath('//*[@id="form"]/span[1]/span[1]').click()
- sleep(3)
- element = driver.find_element_by_class_name('upload-pic') #定位到上传文件框
- element.send_keys(r'C:\Users\kindo\Desktop\Image1.png') #上传文件
方法二:适用于非input标签
使用selenium定位到元素后,点击元素,弹出一个Windows弹窗后,通过pywinauto库对Windows的窗口进行操作
- from selenium import webdriver #从selenium库中导入webdriver包
- from time import sleep
- driver = webdriver.Chrome()
- url = 'https://www.baidu.com/'
- driver.get(url)
- driver.maximize_window()
- element = driver.find_element_by_xpath('//*[@id="form"]/span[1]/span[1]').click()
- element = driver.find_element_by_class_name('upload-pic').click()
- sleep(3)
- '''''
- Python实现来做PC端自动化需要用到一个第三方库:pywinauto
- 安装命令:pip install pywinauto
- '''
- import pywinauto
- #pywinauto模拟操作键盘,需要使用到 pywinauto.keyboard.send_keys这个方法
- #需要注意的是Pywinauto库的send_keys方法与selenium库的send_keys方法不同,输入的键盘操作关键字存在较大差异
- from pywinauto.keyboard import send_keys
- # 使用pywinautoc创建一个操作桌面窗口的对象
- win1 = pywinauto.Desktop()
- # 选择文件上传的窗口 窗口句柄默认为‘打开’
- bow1 = win1['打开']
- # 选择文件地址输入框,点击激活
- bow1["Toolbar3"].click()
- # 键盘输入上传文件的路径
- send_keys(r"C:\Users\kindo\Desktop")
- # 键盘输入回车,打开该路径
- send_keys("{VK_RETURN}")
- # 选中文件名输入框,输入文件名
- bow1["文件名(&N):Edit"].type_keys("Image1.png")
- # 点击打开
bow1["打开(&O)"].click()
更多推荐
已为社区贡献1条内容
所有评论(0)