前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium系列(十一) - 针对两种上传文件方式的实现方案

Selenium系列(十一) - 针对两种上传文件方式的实现方案

作者头像
小菠萝测试笔记
发布2020-06-09 15:33:39
5410
发布2020-06-09 15:33:39
举报
文章被收录于专栏:自动化、性能测试

如果你还想从头学起Selenium,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)

首先,将下面html代码保存到一个文件中

后续第一种上传文件方式的代码小案例都是访问此html的

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
      <input type="file" name="pic" id="pic" />
</body>
</html>

方式一:input标签上传文件

比较简单,可以定位input标签后,直接 .send_keys() 就可以了

代码语言:javascript
复制
# !/usr/bin/env python
# -*- coding: utf-8 -*-

"""
__title__  =
__Time__   = 2020/3/25 17:52
__Author__ = 小菠萝测试笔记
__Blog__   = https://www.cnblogs.com/poloyy/
"""
from selenium import webdriver

driver = webdriver.Chrome("../resources/chromedriver.exe")

# 需要自己修改路径
driver.get("file:///C://上传文件.html")
driver.maximize_window()

# 定位上传文件元素input[type=file]
pic = driver.find_element_by_id("pic")

# 上传文件
pic.send_keys(r"C:/上传文件.html")

方式二:非input标签上传文件

代码语言:javascript
复制
# 打开上传网站
driver.get("https://tinypng.com/")
paths = Path.cwd().parent

# 触发文件上传的操作
driver.find_element_by_css_selector("section.target").click()

time.sleep(2)
# 一级顶层窗口
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", None)

# 1、输入文件路径
filepath = f"{paths}\\resources\\11.png"
win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, filepath)

# 2、点击打开按钮
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)

这个是写死的方法,直接照搬即可,因为涉及了第三方工具去定位Window元素,暂时不展开详解

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先,将下面html代码保存到一个文件中
  • 方式一:input标签上传文件
  • 方式二:非input标签上传文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档