Selenium文件上传

介绍两种文件上传的操作方法,如图为例:
Selenium文件上传_第1张图片
一.input标签类型的可以定位元素后通过send_keys传入路径即可

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("url")

# 上传文件
driver.find_element_by_name("myfile").send_keys("d:\demo.txt")## 输入的是文件的路径。

二.非input标签的需要借助三方库,下面介绍两种:
1.pywinauto库

pip install pywinauto

代码如下:

from selenium import webdriver
from pywinauto import Desktop
import time
dr=webdriver.Chrome()

dr.get('url')
dr.maximize_window()
time.sleep(1)

# 操作系统的指令
wd = Desktop()
open = wd['打开'] #根据名字找到弹出窗口
open["Edit"].type_keys("D:\demo.txt") # 在输入框中输入值
open["Button"].click()

2.pyautogui库

from selenium import webdriver
import pyautogui
import time
dr=webdriver.Chrome()

dr.get('url')
dr.maximize_window()

dr.find_element_by_name('myfile').click()
time.sleep(1)
pyautogui.write(r'd:\demo.txt')
time.sleep(1)
pyautogui.press('enter')#回车按键

但是路径内有中文的话这种方法是不支持的,解决方法如下:

from selenium import webdriver
import pyautogui
import pyperclip
import time
dr=webdriver.Chrome()
dr.get('url')
dr.maximize_window()
dr.find_element_by_name('myfile').click()
pyperclip.copy(r'd:\测试.txt')
time.sleep(1)
pyautogui.hotkey('ctrl','v')
time.sleep(1)
pyautogui.press('enter')
time.sleep(2)

你可能感兴趣的:(web自动化)