python自动化测试--文件上传

# *************************************************上传文件操作*************************************************

import win32gui
import win32con


# 谷歌浏览器
def upload_file(file_path):
    # 一级窗口
    dialog = win32gui.FindWindow("#32770", "打开")

    # 二级窗口
    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", "打开(&O)")

    # 输入文件地址:
    win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, file_path)
    # 点击打开按钮,提交文件
    win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)


upload_file(r"D:\python\sl.txt")



"""
autoit、pywin32

http://testingpai.com/article/1595507248769

# 1、pywinauto  => pip install pywinauto
# 缺点:只能在windows上使用
# 优点:可以选择多个文件,路径中有中文也能可以

# 2、pyauogui  => pip install pyautogui
# 优点: 跨平台(linux,mac,windows都可以用)
# 缺点:只能选择一个文件,文件路径有中文会出问题

# ------------pywinauto  通过窗口上传文件----------------------
from pywinauto.keyboard import send_keys

输入文件名
# send_keys('C:\课件\images\9.png')
# # 输入回车键
# send_keys('{VK_RETURN}')


------------pyautogui  通过窗口上传文件----------------------
# 输入文件名
pyautogui.write('D:\selenium-screenshot-4.png') 
# 输入回车键,注意要按2次
pyautogui.press('enter', 2)
"""


from selenium import webdriver
import pyautogui
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains
from pywinauto.keyboard import send_keys


driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.ketangpai.com/User/login.html")
sleep(2)
driver.find_element("xpath", '//input[@name="account"]').send_keys("2501768591@qq.com")
driver.find_element("xpath", '//input[@name="pass"]').send_keys("yuan5311645")
driver.find_element('xpath', '//div[@id="login"]//div[contains(@class,"pt-login")]//a[text()="登录"]').click()

sleep(7)
driver.find_element('xpath', '//a[@title="Python全栈第33期"]').click()
sleep(6)
driver.find_element('xpath', '//div[@id="third-nav"]//a[text()="资料"]').click()

sleep(5)
driver.find_element('xpath', "//div[contains(@class,'add-resource-btn')]").click()
sleep(5)
# 点击 上传本地文件   按钮,弹出windows对话框
ele = driver.find_element('xpath', '//a[contains(@class,"webuploader-container")]')
ActionChains(driver).click(ele).perform()

# 等待windows弹框出现
sleep(4)

# pyautogui的用法
# pyautogui.write('D:\\BaiduNetdiskDownload\\report_.html')
# pyautogui.press('enter', presses=2)

# pywinauto的用法
send_keys(r'C:\picture1.jpg')
# send_keys('"D:\selenium-screenshot-4.png"')
# 输入回车键
send_keys('{VK_RETURN}')

sleep(10)
# driver.quit()



  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值