文件上传是web页面上很常见的一个功能,但webdriver并未提供对应方法。文件上传一般分两种场景:
- 一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决。
- 另一种是非input标签,可以借助autoit工具或者SendKeys第三方库实现,比较困难。
一、简单样例
二、定位上传按钮
根据上图可知,文件上传按钮有个很明显的标识,它是一个input标签,并且type属性值为file。
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('A.html')
# 定位到文件上传按钮
driver.find_element('xpath', '//*[@type="file"]')
三、文件上传
定位到文件上传按钮后,就可以直接用send_keys()方法上传文件了。
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('A.html')
# 上传文件
driver.find_element('xpath', '//*[@type="file"]').send_keys(r'C:\Users\zhan\Desktop\selenium.txt')