python 上传文件等待时间,python文件上传

我们在使用python做web自动化的过程中,经常会遇到文件上传的操作。对于文件上传存在input输入框情况,可以直接定位input元素,使用send_keys(filepath)方法实现。对于没有input输入框的文件上传,则需要借助第三方工具,在上传文件时打开系统窗口。以下是两个上传文件操作比较简单的工具

windows系统:pywinauto库

安装:pip install pywinauto

导入:from pywinauto.keyboard import send_keys

mac/Linux/window通用:pyautogui 跨平台

python3.8环境:先安装依赖 pip install pillow==6.2.2,再安装 pip install pyautogui

非python3.8环境:直接 pip install pyautogui

导入:import pyautogui

1,input元素使用send_keys()方法

from selenium import webdriver

import time

driver = webdriver.Chrome()

driver.implicitly_wait(10)

URL = 'https://xxxx/kk-form/fs/fm/form/161519068236342881d3774ec5428571/fill'

driver.get(URL)

# 获取上传组件的元素

f = driver.find_element('xpath', "(//input[@class='van-uploader__input'])[1]")

# 使用send_keys直接发送文件路径即可

f.send_keys(r'/Users/lili/Documents/weixin.jpeg')

time.sleep(5)

driver.quit()

2,非input元素,window方法:使用pywinauto库

import pyautogui as pyautogui

from pywinauto.keyboard import send_keys

from selenium import webdriver

import time

driver = webdriver.Chrome()

driver.implicitly_wait(10)

URL = 'https://xxxx/kk-form/fs/fm/form/161519068236342881d3774ec5428571/fill'

driver.get(URL)

f = driver.find_element('xpath', "(//input[@class='van-uploader__input'])[1]")

# 触发点击事件,让系统的弹框弹出来

f.click()

# 等待,因为弹框弹出来需要时间

time.sleep(1)

# 这里是pywinauto 的send_keys 方法

send_keys(r'/Users/lili/Documents/weixin.jpeg')

# 使用return提交

send_keys('{VK_RETURN}')

3,非input元素,mac/Linux/window的通用方法:pyautogui库

from selenium import webdriver

import pyautogui

import time

driver = webdriver.Chrome()

driver.implicitly_wait(10)

URL = 'https://xxxx/kk-form/fs/fm/form/161519068236342881d3774ec5428571/fill'

driver.get(URL)

f = driver.find_element('xpath', "(//input[@class='van-uploader__input'])[1]")

# 触发点击事件,让系统的弹框弹出来

f.click()

time.sleep(1)

# 写入路径

pyautogui.write(r'/Users/lili/Documents/weixin.jpeg')

# 敲回车:相当于点击【打开】按钮,需要敲2次,避免失败

pyautogui.press('enter', 2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值