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)  #这里加等待时间是因为头像上传的时候会很慢,不加的话继续运行下面的脚本时就会报错,加个缓冲时间
  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/mihoutao/p/11364442.html
Copyright © 2011-2022 走看看