前言
在使用selenium做web自动化的过程中,我们会遇到文件上传的功能,但是通过selenium是没有办法实现的,因为selenium无法对文件上传弹出窗口中的相关元素进行定位。那我们应该怎么解决这个问题了,下面文章会介绍如何通过pywinauto模块上传文件。
pywinauto的使用介绍
关于文件上传的弹窗一共有三个步骤:
在进行操作之前,我们就需要定位到这几个控件1、路径输入框,2、文件输入框、3、打开按钮
import pywinauto
app = pywinauto.Desktop()
dlg = app["打开"]
dlg["Toolbar3"]
dlg["文件名(&N):Edit"]
dlg["打开(&O)"]
实战练习
from selenium import webdriver
import pywinauto
from pywinauto.keyboard import send_keys
class Demo:
def __init__(self):
'''
webdriver.Chrome:谷歌浏览器
implicitly_wait(10):隐形等待10秒
maximize_window():放大窗口
'''
self.device = webdriver.Chrome()
self.device.maximize_window()
self.device.implicitly_wait(10)
self.device.get('https://www.wenshushu.cn/')
def Update(self):
'''上传文件'''
self.device.find_element_by_css_selector('.chooice-btn span[class="text"]').click()
app = pywinauto.Desktop()
dlg = app["打开"]
dlg["Toolbar3"].click()
send_keys("C:\\Users\\Admin\\Desktop")
send_keys("{VK_RETURN}")
dlg["文件名(&N):Edit"].type_keys("1.txt")
dlg["打开(&O)"].click()
if __name__ == '__main__':
a = Demo()
a.Update()
|