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. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-14 12:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-14 12:26:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-14 12:26:04       82 阅读
  4. Python语言-面向对象

    2024-06-14 12:26:04       91 阅读

热门阅读

  1. C++中的中介者模式

    2024-06-14 12:26:04       30 阅读
  2. linux段异常信号量

    2024-06-14 12:26:04       31 阅读
  3. 黑苹果/Mac如何升级 Mac 新系统 Sequoia Beta 版

    2024-06-14 12:26:04       34 阅读
  4. 文本相似度的三种算法

    2024-06-14 12:26:04       28 阅读
  5. WPS中XLS表格使用的技巧记录

    2024-06-14 12:26:04       29 阅读
  6. 2024年湘潭大学软件体系结构考试总结

    2024-06-14 12:26:04       30 阅读
  7. 探索未来:前沿科技的突破与挑战

    2024-06-14 12:26:04       25 阅读
  8. 轻兔推荐 —— Syncthing

    2024-06-14 12:26:04       26 阅读