zoukankan      html  css  js  c++  java
  • Python + Selenium 上传元素为button类型的文件的解决办法

    工具:winspy

    Python所需安装模块:pywin32 (安装语句:pip install -i https://pypi.douban.com/simple pywin32)

    元素位置:

    对应代码:

    from selenium import webdriver
    from time import sleep
    import win32gui
    import win32con
    
    
    # 上传文件
    upload = browser.find_element_by_xpath("//button[@class='el-button specialBtn el-button--default']//span")
    upload.click()
    sleep(1)
    
    # win32gui
    dialog = win32gui.FindWindow('#32770',u'打开')  # 对话框
    ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,'ComboBoxEx32',None)
    ComboBox = win32gui.FindWindowEx(ComboBoxEx32,0,'ComboBox',None)
    Edit = win32gui.FindWindowEx(ComboBox,0,'Edit',None)  # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
    button = win32gui.FindWindowEx(dialog,0,'Button',None)  # 确定按钮Button
    
    win32gui.SendMessage(Edit,win32con.WM_SETTEXT,None,'E:jmeter-testcase.csv')  # 往输入框输入绝对地址
    win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button)  # 按button
    
    sleep(5)

    备注:此代码仅适用于Chrome浏览器,Firefox及IE浏览器可能title(“打开”)会不一样,后续会根据浏览器去优化代码。

    参考文章:https://www.cnblogs.com/xiaogongjin/p/11546518.html

  • 相关阅读:
    称重量
    计算机网络
    进程间的通信方式与区别
    求两IP是否在同一局域网(运子网掩码用)
    Linux Redhat7 磁盘阵列基本原理
    Linux Redhat7更改root用户密码
    更改Linuxshell类型
    linux系统下的/var/spool/mail/root
    centos 解决"不在 sudoers 文件中。此事将被报告
    redhat 7 安装图形界面
  • 原文地址:https://www.cnblogs.com/QianyuQian/p/13099124.html
Copyright © 2011-2022 走看看