文章末尾给大家留下了大量的福利
一、关于上传操作
上传有两种情况:
- 如果是input可以直接输入路径的,那么直接使用send_keys(文件路径)输入路径即可;
- 非input标签的上传,则需要借助第三方工具:第三方库 pywin32、第三方工具pyautogui等等。
那这里针对以上两种情况分别介绍一下具体的解决方法。
二、input标签
定位到元素,然后直接使用send_keys(文件路径)输入路径,比较简单。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://xxxx")
driver.maximize_window()
# 定位上传文件元素
input_file = driver.find_element_by_id("xxx")
# 上传文件
input_file.send_keys(r"D:\learn\xx.txt")
三、第三方库pywin32
非input标签的上传,则需要借助第三方工具。pywin32就是这样的一个第三方库,主要是方便python开发者快速调用windows API的一个模块库,可以识别上传对话框句柄进而操作。安装命令:pip install pywin32。
从上面的上传窗口,及WinSpy工具窗口,可以得出控制关系图如下:
从上图可以看出:
- 文件名输入框的路径为:上传窗口 - > comboBoxEx32 - >comboBox - > Edit,在第四级edit;
- 按钮的路径为:上传窗口 - > button(打开按钮),在第二级。
我们需要一步一步定位