zoukankan      html  css  js  c++  java
  • UI自动化页面需要选择上传文件

    UI自动化页面上传文件,百度查的时候说有4中方法,简便的方法是安装SendKeys,但是百度说这个只支持python2.7的

    我的python版本是3.7的,目前还只碰到了非<input type="file"...>的情况,所以用pywin32模块,等遇到其他情况再补充

    前提:安装pywin32:pip install pywin32

    解析:# 文件上传框,定位工具Winspy

    # 上传窗口  dialog(win32gui.FindWindo)    一级

    # 子窗口:打开按钮  button (win32gui.FindWindowEx)  四级

    # 子窗口  ComboBoxEx32 (win32gui.FindWindowEx)  二级

    # 子窗口  ComboBox (win32gui.FindWindowEx)    三级

    # 子窗口:文件路径输入框  edit(win32gui.FindWindowEx)  四级



    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import
    win32con,win32gui
    driver=webdriver.Chrome()
    driver.get('http://xxx')
    步骤1:先定位到页面上的上传按钮,比如我的页面是“选择头像”
    tmp0='#uploadUserImgAddr'
    e1=driver.find_element_by_css_selector(tmp0)
    ActionChains(driver).move_to_element(el).click().perform()
    ActionChains(driver).release()
    time.sleep(5) #等待时间只是为了看效果

    步骤2:下面一段代码可以直接照搬,只需要修改下面的2个地方即可
    dialog = win32gui.FindWindow("#32770", "打开") # 一级窗口 ‘打开窗口’ #修改1:打开的浏览器:
    Chrome是"打开",FireFox是"文件上传",ie是"选择要加载的文件"
    ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, "ComboBoxEx32", None) # 二级

    ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, "ComboBox", None) # 三级
    edit = win32gui.FindWindowEx(ComboBox, 0, "Edit", None) # 四级
    button = win32gui.FindWindowEx(dialog, 0, "Button", None) # 四级
    # 往文件名编辑框中输入文件路径
    # 上传操作
    win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, r'E:文件测试图片ug图片人头像人头像1.jpg') #修改2:上传的文件路径
    win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 点击打开按钮
    time.sleep(10)  #这里加等待时间是因为头像上传的时候会很慢,不加的话继续运行下面的脚本时就会报错,加个缓冲时间
  • 相关阅读:
    Java生产环境线上栈故障排查问题(COPY)
    Java集合HashMap,List底层
    图算法--染色法判定二图
    图算法--kruskal
    图算法--最小生成树prim
    图算法--判负环
    图算法--floyd
    图算法--spfa
    图算法--bellman-ford (nm)
    图算法--堆优化版dijkstra
  • 原文地址:https://www.cnblogs.com/mihoutao/p/11364442.html
Copyright © 2011-2022 走看看