RF上传图片各种失败坑,使用pywin32来操作windows窗体

这个上传按钮,使用 Choose File,失败不知道为什么。。。
Name:
Choose File
Source:
Selenium2Library <test library>
Arguments:
[ locator | file_path ]
然后说用AutoItLibrary pip安装报错,下载安装报错(python3.7)坑。
然后说试试 python+selenium来解决,but它会自己新开浏览器。。。。坑 (可以这样开浏览器把图片上传好了再关闭浏览器 再在RF打开浏览器操作,感觉很low)
然后说试试python+pywin32终于成功

#coding:utf-8
import os
import win32gui
import win32con def upload(fileAddr): wndtitle = u"打开" # 进程名(就是那个窗体名称)
wndclass = '#32770' #这个用SPY++找出来 什么类名
wnd = win32gui.FindWindow(wndclass, wndtitle) #获取这个窗体的句柄,不懂什么是句柄 感觉是个id吧
print("上传窗口句柄:%s"%wnd) Ind = win32gui.GetDlgItem(wnd,1148) #通过窗体句柄和控件ID,找到输入框的句柄
print("输入框句柄:%s"%Ind) win32gui.SendMessage(Ind,win32con.WM_SETTEXT,None,fileAddr) #给这个输入框发送text Bnd = win32gui.GetDlgItem(wnd,1) #取打开按钮的句柄
print("打开按钮句柄:%s"%Bnd) win32gui.SendMessage(Bnd,win32con.BM_CLICK,None,None) #点【打开】按钮
句柄什么鬼: 句柄(handle),有多种意义,其中第一种是指程序设计,第二种是指Windows编程。现在大部分都是指程序设计/程序开发这类。
第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
第二种解释:整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,
诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。
如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

RF上传图片各种失败坑,使用pywin32来操作windows窗体的更多相关文章
- 无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证
----注意:以管理员身份运行VS C#中ASP.NET Web应用程序编译时的错误:无法在web服务器上启动调试.调试失败,因为没有启用集成windows身份验证. 解决:打开IIS,在IIS里查看 ...
- selnium远程机上传图片遇到的坑
一般上传图片方法采取方案如下: input标签的file类型上传图片,使用对象的sendkeys+路径方法 使用js注入,再用使用对象的sendkeys+路径方法 使用autolt生成的exe,打开对 ...
- [原创]SpringBoot上传图片踩的坑
最近项目里面有个需求,要上传图片到阿里云的OSS服务.所以需要写个上传图片的接口给前端. 这个简单的接口本来就给分配了1个工时,感觉也蛮简单的.但编码过程中遇到了好几个问题,现在一一记录下来,避免再次 ...
- 原生js上传图片遇到的坑(axios封装)
后台给我写了一个上传图片的接口,自己用form表单测试成功 接口可以正常跳转 测试的代码: <!doctype html> <html lang="en"> ...
- 开源中国/码云 README.md上传图片的爬坑记录
整理代码,将电脑中长期没有用过的代码放到码云上托管,给项目录制gif动画,在写项目README.md时使用,结果在上传图片时一直出问题,现记录下最后解决方法: 1. 最初直接将录制好的图片放入到img ...
- 关于 DjangoUeditor 上传图片图片失败,csrf token missing or incorrect 的解决办法
Forbidden (CSRF token missing or incorrect.): /ueditor/controller/ [27/Jun/2017 23:49:25] "POST ...
- v9上传图片/附件失败出现undefined的解决方法之一
把phpcms\modules\attachment\attachments.php中将 if(empty($this->userid)){改成 ...
- RF脚本中的坑2: pip下载python库时报certificate verify failed
用pip命令下载第三方library时,报错certificate verify failed,截图如下: 在网上找了各种教程,包括修改了pip下载源地址也无效果,最后祭出了杀手锏——FQ,FQ成功后 ...
- RF脚本中的坑1: SyntaxError: invalid token
话不多说,直接上调试脚本: 执行后${b}=8:没问题.然后${a}改成08继续: 执行后居然报错了: 经过多次尝试08或者09时,都会报SyntaxError错误:后来查阅语法,才恍然大悟:Pyth ...
随机推荐
- 第八章.Spring MVC
基于MyEclipse开发 工程结构: 所使用到的jar: 代码: FruitControllerTest.java public class FruitControllerTest implemen ...
- Java: System.exit() 与安全策略
说明 System.exit() 的本质是通知 JVM 关闭. 一般来说,有两种禁用 System.exit() 的办法: 安全管理器 安全策略 本质都是JRE 提供的本地实现,在执行之前进行权限判断 ...
- JDK自带监控工具
该篇文章,主要是工具普及,告诉大家有这么两款工具,可帮助我们进行JVM调优,及时看到JVM的变化. 不过建议,最好还是对于JVM相关的知识点,有一定的基础和熟悉. JDK自带jconsole.exe和 ...
- mac 删除自带 ABC 输入法的方法
首先需要关闭 mac 系统的 SIP ,不然删不掉,不会关的可以查看我的另一篇文章:mac 关闭系统完整性保护 SIP(System Integrity Protection)的方法 . 关闭 SIP ...
- javascript-数字转罗马数字
阿拉伯数字与罗马数字转换 罗马数字表示 XXI, 21 个位数举例I, 1 ]II, 2] III, 3] IV, 4 ]V, 5 ]VI, 6] VII, 7] VIII,8 ]IX, 9 ·十位数 ...
- easyui分页的使用方法
使用: $("#tt").datagrid("getPager").pagination(option); 例子: $("#tb").dat ...
- Oracle在线重定义(online redefinition)--将普通表改为分区表
使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表.操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 EXEC DB ...
- [videos系列]日本的videos视频让男人产生了哪些误解?
转载自:[videos系列]日本的videos视频让男人产生了哪些误解? 日本的videos视频是每个男人成长过程中都会看的启蒙教育片,也是男人在成年后调剂生活的必需品,但是由于影视作品是艺术的,是属 ...
- 笔记: 对称加密算法的PKCS5 和 PKCS7 填充
PKCS #7 填充字符串由一个字节序列组成,每个字节填充该填充字节序列的长度. 假设,块的长度是 8, 数据长度是 5 数据:AA AA AA AA AA PKCS#7 填充 AA AA AA AA ...
- python打印99乘法表
代码如下: print(XXX,end="\t") #表示打印不换行 附带python部分转义字符: