python在selenium网页模拟运行过程中需要打开文件夹上传文件的情况的解决方法

在selenium运行过程中,可能会遇到网页需要上传文件图片等情况,有时可以直接用selenium中send_keys直接上传,但是有时不行,这时我们需要用到另一个包,pywinauto
具体的代码如下,

import pywinauto
# pywinauto模拟操作键盘,需要使用到 pywinauto.keyboard.send_keys这个方法
# 需要注意的是Pywinauto库的send_keys方法与selenium库的send_keys方法不同,输入的键盘操作关键字存在较大差异
from pywinauto.keyboard import send_keys
folder = 'xxxxx' #文件夹地址
file = 'xxxxx' #文件名
# 使用pywinautoc创建一个操作桌面窗口的对象
win1 = pywinauto.Desktop()
# 选择文件上传的窗口 窗口句柄默认为‘打开’
bow1 = win1['打开']
# 选择文件地址输入框,点击激活
bow1["Toolbar3"].click()
# 键盘输入上传文件的路径
send_keys(folder)
# 键盘输入回车,打开该路径
send_keys("{VK_RETURN}")
# 选中文件名输入框,输入文件名
bow1["文件名(&N):Edit"].type_keys(file)
# 点击打开
bow1["打开(&O)"].click()

运行情况是模拟手动点击上传按钮,在文件夹中选择文件。期间不能手动触碰鼠标键盘。
因为是在selenium模拟网页运行的代码中的,所以上面需要连接
web.find_element(By.XPATH,‘xxxxxxxxxxx’).click()等使用,
就是说,先用selenium模拟点击上传按钮,然后再使用上面的代码模拟上传文件。
代码中只需要修改folder和file,其他的不要动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JNI NDK错误汇总

问题一:This app only has 32-bit [armeabi-v7a] native libraries. 解决:在app目录下的build.gradle的android结构里加上arm64-v8a,如下: android {.......defaultConfig{ndk{ abiFilters armeabi-v7a, arm64-v8a //abiFilters a…

驱动执行篇之电机编码器:编码器基础与双编码器方案

目录 |1.编码器概述 |2.编码器分类 |2.1.增量式编码器和绝对值编码器 |2.2.光电编码器 |3.双编码器方案 |3.1几种扭矩感知方案 |3.3双编码器安装方式 |1.编码器概述 编码器 编码器,是将信号(如比特流)或数据进行编制、转换为可用以通讯…

ECA-Net:深度卷积神经网络中的高效通道注意力机制【原理讲解及代码!!!】

ECA-Net:深度卷积神经网络中的高效通道注意力机制 在深度学习领域,特别是在深度卷积神经网络(DCNN)中,注意力机制已经成为提升模型性能的关键技术之一。其中,ECA模块(Efficient Channel Attent…

C# 中优雅的动态序列化接口返回数据

在C#中,与Web服务的交互经常涉及到数据的序列化和反序列化。当我们与不同的API接口交互时,返回的数据结构和类型可能会有所不同。为了处理这种多样性,我们需要一种方法来动态地序列化接口返回的数据。 本文将介绍如何使用C#中的Json.NET&…

前端项目的导入和启动

安装依赖 前端安装依赖只需要在控制台执行“npm i”即可。Tips:当我们执行的时候,有时候会很慢。可以考虑使用yarn或者pnpm。然而使用yarn或者pnpm有时候有一些莫名其妙的问题。所以还是得使用npm, 这个时候可以通过更换镜像源为淘宝镜像源。…

【C++】容器:vector的接口介绍大全

vector的接口介绍大全 一、vector的接口介绍二、常用接口的使用1. 定义vector2. vector赋值操作3. 迭代器4. 容量操作resizereserve 5. 访问元素[] front back at 6. 修改容器assignpush_back pop_backinserteraseclear 7. 容器的其他操作swap vector 是 C 标准模板库&#xff…

B2134 质数的和与积

题目描述: 两个质数的和是 S,它们的积最大是多少? 代码: package lanqiao;import java.math.BigInteger; import java.util.*;public class Main {public static int[] prime new int[10000];public static void main(String[] args) {Scanner sc n…

淘宝商家号码采集软件教程步骤

淘宝商家号码采集工具的原理可以通过以下几个步骤来解释: 搜索关键词:工具首先通过用户输入的关键词,在淘宝平台上进行搜索。关键词可以是商品类别、商家名称等。 解析网页:工具通过网络请求获取淘宝搜索结果页面的源码&#xff…

vue3+ts实现表格单元格编辑功能

使用 el-table-plus 中的 el-switch 组件来控制表格的可编辑状态,并且使用 el-table-plus 组件显示表格。通过 :edit-table 属性来控制表格是否可编辑,而 :edit-config 属性用来配置编辑时的样式和允许编辑的列。当 switch 组件的状态发生改变时&#xf…

Python 学习笔记(十)—— 文件

目录 一、文件基本概念 二、文件打开和关闭 2.1 打开文件 open() 方法 2.2 File 对象的属性 2.3 关闭文件 close() 方法 三、文件操作 3.1 写入操作方法 3.1.1 write() 方法 3.3.2 writelines() 方法 3.2 读取操作方法 3.2.1 read() 方法 3.2.2 readline() 方法 3…

Docker Mysql 5.7搭建主从复制 CentOS7

文章目录 一、 环境介绍:二、 搭建步骤:1、容器启动2、master配置3、slave配置4、主从配置1、master配置2、slave配置 一、 环境介绍: 系统: CentOS7 mysql:5.7 docker:25.0.0.0 二、 搭建步骤&#xff1…

flex上下固定中间占固定高度(中间左右菜单)且内容自动滚动

效果图 布局&#xff1a; <view class"pop_tSet"><view class"pop_Con"><view class"box_bb"><view class"bb_title">{{titleObj[popType]}}</view></view><view class"box_bb_bot"…

程序安装 - 笔记

1 程序IOServer,依赖自己开发libs7.so.如何安装程序 要安装依赖于自己开发的 libs7.so 的程序 IOServer,你需要执行以下步骤: 编译 IOServer 程序:确保 IOServer 程序的源代码处于可用状态,并且已经编译成可执行文件。这可能需要执行诸如 make 或者其他编译命令,具体取决…

The Sandbox 推出全新后室模板!

我们非常高兴地向你介绍游戏制作器的另一个新成员&#xff1a; 后室模板&#xff01; 步入神秘而不自然的空旷空间&#xff0c;感觉有些......不对劲。准备好探索、创造和拥抱引人入胜的后室世界吧。 什么是后室&#xff08;Backroom&#xff09;游戏&#xff1f; 早在 2019 年…

ChatGPT之道:巧用写作技巧

ChatGPT无限次数:点击直达 ChatGPT之道&#xff1a;巧用写作技巧 在当今快节奏的社会中&#xff0c;写作是一项非常重要的技能&#xff0c;不仅可以帮助我们有效表达思想&#xff0c;还可以提升个人能力和吸引力。而借助人工智能技术&#xff0c;如OpenAI推出的ChatGPT&#x…

获取公募基金持仓【数据分析系列博文】

摘要 从指定网址获取公募基金持仓数据&#xff0c;快速解析并存储数据。 &#xff08;该博文针对自由学习者获取数据&#xff1b;而在投顾、基金、证券等公司&#xff0c;通常有Wind、聚源、通联等厂商采购的数据&#xff09; 1. 导入必要的库&#xff1a; pandas 用于数据处理…

本地存储、自定义事件、全局事件总线

Vue 1.1 浏览器的本地存储 存储内容大小一般支持5MB左右&#xff08;不同浏览器可能还不一样&#xff09; 浏览器通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制 相关API: &#xff08;1&#xff09;xxxxStorage.setItem(key, value); 该方法接受一…

Java中类装载的执行过程

类装载的执行过程 类从加载到虚拟机中开始&#xff0c;直到卸载为止&#xff0c;它的整个生命周期包括了&#xff1a;加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中&#xff0c;验证、准备和解析这三个部分统称为连接&#xff08;linking&#xff09;。 1.加载 …

第一天学C++(C++入门)

一、HelloWorld &#xff08;第一个C入门程序&#xff09; 1.1代码 #include<iostream> using namespace std; // 1.单行注释// 2. 多行注释 /* main 是一个程序的入口 每个程序都必须有这么一个函数 有且仅有一个 */ int main() {// 第九行代码的含义就是在屏幕中输出…

果园系统养殖游戏喂养偷菜种植浇水养成小程序

装扮 通过购买装扮场景切换不同的农场风格 土地升级 通过特定的材料对土地和房屋进行升级 日志 记录道具的使用数量及金币农作物的收入情况 幸运转盘 可用金币进行抽奖 宝箱开启 获得宝箱后可以通过金币开启 每日签到 每日签到获得奖励 系统公告 可以第一时间知道游戏的更新和…