Python、selenium 自动化 - 实现自动上传外部文件

embedded/2024/11/14 1:07:25/

点击windows窗口版

直接上代码

python">from selenium import webdriver
from selenium.webdriver.common.by import By
from pywinauto import Desktop# 配置
option = webdriver.ChromeOptions()
option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")  # 使用指定浏览器
browser = webdriver.Chrome(options=option)#具体操作
browser.find_element(By.XPATH, '//*[@id="progressFour"]/div[4]/div[2]/div[' + str(i+1) + ']/div/span/i').click()  # 点击上传
time.sleep(1)
app = Desktop()
dialog = app['打开文件']  # 根据名字找到弹出窗口
time.sleep(1.5)
dialog["Edit"].type_keys(pdf_path1)  # 在弹出的框中输入相关的值。
time.sleep(1.5)
dialog["打开(&O)"].click_input()

不弹出windows窗口版本

原理:只要给文件上传的元素传一个本地路径, ​input​ type = “file” 类型

如图:
在这里插入图片描述

然后 ​send_keys()​ 传入路径就好了。

python">driver.find_element_by_xpath('//input[@type="file"]').send_keys('D:\\Desktop\\文件.zip')

http://www.ppmy.cn/embedded/137057.html

相关文章

uniapp—android原生插件开发(1环境准备)

本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求! 项目背景: UniApp集成新大陆P…

Web3 游戏周报(11.03 - 11.09)

回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【11.03 - 11.09】Web3 游戏行业动态: Ton Accelerator 推出名为「Synergy」的 500 万美元计划,旨在推动跨链创新,创造 TON 用户与 EVM 网络适应…

ctfshow(316,317,318)--XSS漏洞--反射性XSS

反射型XSS相关知识 Web316 进入界面: 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题,看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台,…

性能调优专题(5)之深入理解Mysql事务隔离级别与锁机制

一、概述 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多并发事务问题,为了解决多事务并发问题&a…

【GPTs】Email Responder Pro:高效生成专业回复邮件

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯Email Responder Pro主要功能适用场景优点缺点 💯小结 💯GPTs指令 中文翻译: Email Craft 是一款专门用于…

在数据抓取的时候,短效IP比长效IP有哪些优势?

在数据抓取领域,代理IP的选择对于任务的成功率和效率至关重要。短效IP和长效IP各有其特点和适用场景,但在数据抓取过程中,短效IP因其独特的优势而受到青睐。本文将和大家一起探讨短效IP在数据抓取中相比长效IP的优势。 短效IP的定义与特点 …

为什么分布式光伏规模是6MW为界点?

安科瑞 Acrel-Tu1990 最近,能源局颁布了一项规定,明确指出6兆瓦(MW)及以上的分布式光伏电站必须实现自发自用,自行消纳电力。多个省份的能源局进一步规定,规模超过6兆瓦的电站需按照集中式管理进行操作。此…

Stored procedures in PostgreSQL

select 存储过程,在现了解的情况,还是没有mysql,sqlserver等好写好用。 --postgreSQL 11.0 以下版本 create or replace FUNCTION procInsertSchool (pSchoolId Char(5),pSchoolName VarChar(100),pSchoolTelNo VarChar(8) ) RETURNS void language plp…