ui自动化中,几种文件上传整理2024

input标签的

对于input标签实现的文件上传,看成输入框,直接send_keys

非input标签的 

要使用第三方库:

方式1: pip install pypiwin32

要点:图片路径要写路径

方式2:pip install pyautogui

 方式3:pip install pywinauto(未尝试)

 

input标签和 非input标签上传文件演示代码


from selenium import webdriver
import time


# 创建浏览器驱动对象
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()            # 参数写浏览器驱动文件的路径,若配置到环境变量就不用写了
# 访问网址
driver.get("http://42.192.62.186:8088/index.html#/")
driver.maximize_window()
# 账号密码
driver.find_element(By.CSS_SELECTOR, '#username').send_keys('sq3')
driver.find_element(By.CSS_SELECTOR, '#password').send_keys('123')
driver.find_element(By.CSS_SELECTOR, '#code').send_keys('999999')

driver.find_element(By.CSS_SELECTOR,"#submitButton").click()
time.sleep(1)
driver.refresh()

"""input单文件上传"""
time.sleep(1)       # 刷新頁面有延迟
driver.find_element(By.XPATH,'//*[contains(text(),"文件上传")]').click()
time.sleep(1)       # 下拉框展开有延迟
driver.find_element(By.XPATH,'//*[contains(text(),"单文件上传")]').click()
time.sleep(1)       # 渲染页面有延时
driver.find_element(By.CSS_SELECTOR, '#cover').send_keys('E:\django\接口准备1\window.png')      # 直接 send_keys   只能是全路径
time.sleep(1.5)       # 页面渲染需要时间
driver.find_element(By.XPATH,'//*[contains(text(),"确认上传")]').click()

# 关闭弹窗,这个弹窗是个元素,定位到,点击即可
driver.find_element(By.CSS_SELECTOR,'.el-button--default').click()


"""非input单文件上传"""
driver.find_element(By.XPATH,'//*[contains(text(),"单文件上传(非input)")]').click()
time.sleep(1)
# 点击添加文件
driver.find_element(By.CSS_SELECTOR, '.el-icon-upload').click()
time.sleep(2)
# ---------------方式1--------------------
# import win32com.client
# sh = win32com.client.Dispatch("WScript.shell")
# sh.Sendkeys("E:\\app.png\r\n")
# ---------------方式1--------------------


# ---------------方式2------------------
import pyautogui
import pyperclip

# 1
pyperclip.copy('E:\\app.png')       # 将图片文件复制到剪贴板上
pyperclip.paste()
pyautogui.hotkey('ctrl','v')
# 2
# pyautogui.typewrite('E:\\app.png')            # 这个方式不稳妥了
time.sleep(3)   # 需要等一下,

# 模拟键盘操作
pyautogui.press('enter')
# ----------------方式2-----------------------------



# ----------------方式3
# from pywinauto.keyboard import send_keys

time.sleep(2)       # 上传需要时间
driver.find_element(By.XPATH,'//*[contains(text(),"确认上传")]').click()




# driver.close()
# driver.quit()         # 这个的效果就是离开整个浏览器




 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值