首页 > 其他分享 >selenium-文件窗口上传文件

selenium-文件窗口上传文件

时间:2023-02-22 18:22:57浏览次数:34  
标签:XPATH 文件 selenium driver send element sleep 上传 find

说明:根据点击“上传文件“按钮 ,在弹出的窗口中选择文件并上传;

通过窗口上传文件 
1、----pyautogui
安装:pip install pyautogui
优点:跨平台(window\linux\mac)
缺点:只能选择一个文件,文件路径有中文可能会出问题
2、----pywinauto #此方法还没有成功,大家如果成功了,可以告诉我一下哦 !
安装:pip install pywinauto
优点:只能在windows 上使用
缺点:可以选择多个文件,路径中有中文也可以

---实例

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from pywinauto.keyboard import send_keys
import pyautogui

driver = webdriver.Chrome()
driver.maximize_window() #全屏
# driver.set_window_size(width=700,height=500) #设置窗口大小
sleep(1)
#登录系统
driver.get("http://xxxxxxxxxx/login")
driver.find_element(By.XPATH,'//input[@type="text"]').send_keys('username')
driver.find_element(By.XPATH,'//input[@type="password"]').send_keys('password')
#进入菜单--子菜单页面
driver.find_element(By.XPATH,'//button[@type="button"]').click()
sleep(3)
driver.find_element(By.XPATH,'//span[text()="系统管理"]').click()
sleep(1)
driver.find_element(By.XPATH,'//span[text()="固件管理"]').click()
sleep(1)
#点击“新增”按钮
driver.find_element(By.XPATH,'//button[@class="el-button el-button--primary el-button--mini is-plain"]').click()
sleep(1)
#打开的窗口中输入各字段信息
driver.find_element(By.XPATH,'//input[@placeholder="请输入版本名称"]').send_keys('xiaosu')
sleep(2)
driver.find_element(By.XPATH,'//input[@placeholder="请输入硬件版本,如 H743_v2"]').send_keys('aaaaa')
sleep(2)
driver.find_element(By.XPATH,'//input[@placeholder="请输入固件版本,如 kpj_2.1.6"]').send_keys('bbbbbb')
sleep(2)
driver.find_element(By.XPATH,'//div[@class="el-textarea el-input--mini"]//textarea[@placeholder="请输入更新说明"]').send_keys('cccccc')
sleep(2)
#附件上传,点击“选择文件”,此时弹出文件窗口
driver.find_element(By.XPATH,'//em[text()="选择文件"]').click()
sleep(5)
#弹出的选择文件窗口中,选择文件
#-----pywinauto----- #此方法还没有调试成功,大家可以告诉我一下,互相探讨一下!
# send_keys('D:\\210508OTAnew.bin')
# send_keys('{VK_RETURN}')
#-----pyautogui----
pyautogui.write('D:\\210508OTAnew.bin')
pyautogui.press('enter',2) #此处“2”表示再次确认并关闭文件窗口
sleep(5)
# driver.find_element(By.XPATH,'//span[text()="保存"]').click()
# sleep(2)
driver.quit()





标签:XPATH,文件,selenium,driver,send,element,sleep,上传,find
From: https://www.cnblogs.com/suhongzhen/p/17145425.html

相关文章

  • 局域网大文件上传解决方案
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。首先我们需要了解的是上传文件三要素:1.表单提交方式......
  • 外部访问云服务器IP,上传本地代码,正确配置Nginx(暂不包括配置虚拟主机)
    首先申请一个云服务器,拥有一个公网IP:比如我的是106.15.43.140。步骤:1.在云服务器上安装web服务,Apache或Nginx,我安的Nginx(Ubuntu系统):sudoapt-getupdatesudoapt-geti......
  • 使用fontmin,压缩字体文件,从十几M到几kb,只选择需要使用的文字
    字体文件压缩fontmin,大幅压缩字体文件快速熟练fontmin的使用,只需要在代码中配置文章中需要用到的文字,可以大幅度缩减代码大小安装npminstallfontmin目录结构src......
  • Github说明--如何在Github里面上传自己的代码
    1、注册一个账号这是必须的啦!不清楚注册步骤的,可以去看看我之前的博客,里面的步骤也是挺详细的呢!2、进入到用户主界面我们会看到这样的一个+标识:选择其中的NewReposit......
  • Django——配置文件修改
    返回HTML文件应用场景:需要向接收端返回HTML文件时,使用render返回。需要配置:在DIRS中,配置login.html的路径。配置静态文件应用场景:指CSS,JavaScript......
  • debug补充、员工管理系统、字符编码、文件操作
    目录一、debug补充二、员工管理系统三、字符编码(1)、概念(2)、字符编码的发展史(3)、字符编码的使用四、文件操作(1)、概念讲解(2)、通过代码打开文件的两种方式(3)、文件......
  • Windows中XAudio2_7.dll文件丢失解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损......
  • vue+html5实现上传图片
    原理:dispatchEvent自定义触发事件,常用于自定义鼠标事件或点击事件,原生控件input打开上传文件方案:vue项目,点击自己的上传文件图标,通过dispatchEvent主动触发一个自定义......
  • 期末复习——文件系统
    进程执行I/O大致过程:用户程序提出I/O请求用户进程A阻塞,进程A的PCB块插入阻塞队列,CPU执行其他操作。I/O完成后,向CPU发出中断请求,CPU暂停当前进程B的执行,转到处理中断......
  • VUE大文件上传解决方案
    ​ 关键部分前端用file.slice()分块前端用FileReader获取每一分块的md5值后端用MultipartFile接受分块文件后端用FileOutputStream拼装分块文件话不多说,直接上代码,......