当前位置:网站首页>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)
边栏推荐
- Name six schemes to realize delayed messages at one go
- 2020-9-23 QT的定时器Qtimer类的使用。
- AtCoder Beginner Contest 253 F - Operations on a Matrix // 树状数组
- Shardingsphere JDBC
- CUDA与Direct3D 一致性
- CUDA中的Warp matrix functions
- 底层机制Mvcc
- Sentinel rules persist to Nacos
- unittest.TextTestRunner不生成txt测试报告
- Redis - hot key issues
猜你喜欢
随机推荐
Redis——大Key問題
In depth understanding of JUC concurrency (I) what is JUC
程序员的自我修养—找工作反思篇
CUDA user object
ShardingSphere-JDBC篇
Use of Arduino wire Library
Summary of WLAN related knowledge points
Redis - cluster data distribution algorithm & hash slot
TensorRT的命令行程序
Pbootcms collection and warehousing tutorial quick collection release
RestTemplate请求时设置请求头,请求参数,请求体。
LeetCode 78. subset
利用传统方法(N-gram,HMM等)、神经网络方法(CNN,LSTM等)和预训练方法(Bert等)的中文分词任务实现
深入学习JVM底层(五):类加载机制
Three suggestions for all students who have graduated and will graduate
Sudo right raising
VLAN experiment of switching technology
MySQL的10大經典錯誤
Code skills - Controller Parameter annotation @requestparam
CUDA用户对象









