当前位置:网站首页>Uploading attachments using Win32 in Web Automation
Uploading attachments using Win32 in Web Automation
2022-07-02 06:33:00 【bthtth】
One Scenario as follows
In baidu home page ," Search by image " when , Need to upload pictures .

Two Tools and environments
1\ Need to install winspy This tool 
2\ Need to install win32 library pip install pywin32
winspy Usage of
location
(1) Call the file upload window 
(2) open winspy, single click " Aimed at " Shape button , Don't let go . Drag the button to the window element you want to locate , such as " file name " Input fields and " open " Button 
(3) And then in winspy Fetch element class and Element text 
If there is no text content ,cation It's empty
(4) View the hierarchical path of the element .
stay winspy Panel click "more"( Some versions are tree),
Click on "locate", Will show "edit" Path . Handle in turn \classname\ Text 
You can see "edit" Altogether 4 Level path , And you can get the handle of each level of path \ Classes and text 
Use pywin32 Finish uploading files
win32gui.FindWindow(IpClassName,IpWindowName)
ipclassname Elemental class ipwindowname caption
win32gui.FindWindowEX(hwndparent=0, hwndchildafter=0,ipszclass=None,ipszwindow=None)
Search for forms whose class name matches the text
hwndparent If not 0, Then the search handle is hwndparent Form
hwndchildafter If not 0, According to z-index Search in the order of hwndchildafter Subform of , Otherwise, search from the first subform
ipszclass class The name of
ipszwindow Form caption
win32gui.sendMessage(hwnd,msg,Wparame,Iparame)
hwnd: Handle to the form that accepts the message
msg: news , Pre existing windows Defined commands
wparame and iparame Unclear , For these two parameters, please refer to this article
wparame and iparame The explanation of
import win32gui
import win32con
# Get top-level window , Pass in the top-level window class and caption
dialog = win32gui.FindWindow("#32770"," Open file ")
# Get the secondary window
# Pass in the parent window ,0, window class and caption, If caption Use if it is empty None
ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None)
# Get the three-level window
ComboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None)
# Get level 4 elements
edit = win32gui.FindWindowEx(ComboBox,0,"Edit",None)
# obtain " open " Button
button = win32gui.FindWindowEX(dialog,0,"Button"," open (&O)")
# " file name " Enter the file path
win32gui.sendmessage(edit,win32con.WM_SETTEXT,None," File path ")
# Click on " open "
win32gui.sendmessage(dialog,win32con.WM_CoMMANd,1,button)
边栏推荐
- PgSQL学习笔记
- CUDA中的线程层次
- Android - Kotlin 下使用 Room 遇到 There are multiple good constructors and Room will ... 问题
- Dynamic global memory allocation and operation in CUDA
- 奇葩pip install
- Redis——大Key问题
- 华为MindSpore开源实习机试题
- MySQL的10大經典錯誤
- The intern left a big hole when he ran away and made two online problems, which made me miserable
- Hydration failed because the initial UI does not match what was rendered on the server. One of the reasons for the problem
猜你喜欢

TensorRT的数据格式定义详解

CUDA中的Warp Shuffle

Common means of modeling: combination

VLAN experiment of switching technology

Cglib代理-代码增强测试

Hydration failed because the initial UI does not match what was rendered on the server. One of the reasons for the problem

深入学习JVM底层(四):类文件结构

Sparse array (nonlinear structure)

代码技巧——Controller参数注解@RequestParam

Learn about various joins in SQL and their differences
随机推荐
链表(线性结构)
注解和反射详解以及运用
Singleton mode compilation
Does the assignment of Boolean types such as tag attribute disabled selected checked not take effect?
selenium的web自动化中常用的js-修改元素属性翻页
Function execution space specifier in CUDA
压力测试修改解决方案
Alibaba cloud MFA binding Chrome browser
MySQL的10大經典錯誤
ShardingSphere-JDBC篇
Support new and old imperial CMS collection and warehousing tutorials
eslint配置代码自动格式化
Idea announced a new default UI, which is too refreshing (including the application link)
VLAN experiment of switching technology
Detailed definition of tensorrt data format
FE - Eggjs 结合 Typeorm 出现连接不了数据库
Sentinel规则持久化到Nacos
js中正则表达式的使用
华为MindSpore开源实习机试题
深入学习JVM底层(三):垃圾回收器与内存分配策略