python selenium+pywin32+winspy64工具 完成百度上传图片识图功能

 



import win32gui
import win32con
from selenium import webdriver
import time


def main():
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
driver.find_element_by_css_selector(".soutu-btn").click()
str_js = 'document.getElementsByClassName("upload-pic")[0].click()'
driver.execute_script(str_js)
# 一定要等待windows窗口打开,再用pywin32api操作窗口
time.sleep(5)
# 一级顶层窗口,此处title为上传窗口名称,浏览器不一样上传窗口名称不一样
dialog_1 = win32gui.FindWindow("#32770", "打开")
# 二级窗口
dialog_2 = win32gui.FindWindowEx(dialog_1, 0, "ComboBoxEx32", None)
# 三级窗口
dialog_3 = win32gui.FindWindowEx(dialog_2, 0, "ComboBox", None)
# 文本框
edit = win32gui.FindWindowEx(dialog_3, 0, 'Edit', None)
# 按钮
button = win32gui.FindWindowEx(dialog_1, 0, 'Button', None)
# 需要上传的图片
file_path = "D:\\abc.jpg"
# 输入文件路径
win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, file_path)
# 点击按钮
win32gui.SendMessage(dialog_1, win32con.WM_COMMAND, 1, button)

time.sleep(10)
driver.close()
driver.quit()


if __name__ == '__main__':
main()
 

 下面截图是winspy64工具的使用,,获取windows窗口的class和title

 按住拖动,要获取信息的窗口,点击Tree按钮即可,获取到当前窗口和子级.依次获取需要的信息

 

 

 

 

 

 

 

 

 
posted @ 2020-01-05 00:59  mr_sobad  阅读(742)  评论(0编辑  收藏  举报