zoukankan      html  css  js  c++  java
  • selenium上传文件的方法

    1、使用pywin32上传

    https://www.jianshu.com/p/fba37cc5d5e2

    import win32.lib.win32con as win32con
    import win32.lib.win32gui_struct as win32gui_struct
    
    from time import sleep
    from selenium import webdriver
    
    dr = webdriver.Firefox()
    dr.get("https://www.baidu.com/")
    
    sleep(1)
    
    dr.find_elements_by_css_selector(".soutu-btn")[0].click()
    
    sleep(2)
    
    dr.find_element_by_xpath("//*/div[@class='upload-wrap']").click()
    # upload.click()
    # win32gui
    dialog = win32gui_struct.win32gui.FindWindow('#32770', '文件上传')  # 对话框
    ComboBoxEx32 = win32gui_struct.win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
    ComboBox = win32gui_struct.win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
    Edit = win32gui_struct.win32gui.FindWindowEx(ComboBox, 0, 'Edit', None)  # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
    button = win32gui_struct.win32gui.FindWindowEx(dialog, 0, 'Button', None)  # 确定按钮Button
    
    win32gui_struct.win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, 'C:\Users\cao\Desktop\5.jpg')  # 往输入框输入绝对地址
    win32gui_struct.win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)  # 按button
    
    # print (upload.get_attribute('value'))
    # dr.quit()

    2、使用autolt上传

    https://zhuanlan.zhihu.com/p/31300170

    1、使用autolt获取窗口的title、class、classnameNN

    打开按钮的class属性

     2、使用编辑器编写脚本   SciTE Script Editor

    ControlFocus("文件上传", "", "Edit1")
    WinWait("[CLASS:#32770]", "", 10)
    ControlSetText("文件上传" ,"", "Edit1", $CmdLine[1])
    Sleep(2000)
    ControlClick("文件上传", "","Button1");

    保存脚本至本地

     3、通过工具将脚本转成exe文件        Compile Script to .exe (x64)

    4、在程序中调用exe

    import os
    
    import win32.lib.win32con as win32con
    import win32.lib.win32gui_struct as win32gui_struct
    
    from time import sleep
    from selenium import webdriver
    
    dr = webdriver.Firefox()
    dr.get("https://www.baidu.com/")
    
    sleep(1)
    
    dr.find_elements_by_css_selector(".soutu-btn")[0].click()
    
    sleep(2)
    
    dr.find_element_by_xpath("//*/div[@class='upload-wrap']").click()
    
    sleep(3)
    os.system(r'C:UserscaoDesktopfirefox_update.exe "C:UserscaoDesktop5.jpg"')
    #使用system可以调用exe文件
    sleep(3)
    
    # driver.quit()
  • 相关阅读:
    Java 基础
    Java 数据类型
    Spring 拦截器实现事物
    SSH 配置日记
    Hibernate 知识提高
    Jsp、Servlet
    leetcode 97. Interleaving String
    leetcode 750. Number Of Corner Rectangles
    leetcode 748. Shortest Completing Word
    leetcode 746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/wbw-test/p/12883809.html
Copyright © 2011-2022 走看看