文件上传方法验证

做文件上传,下载自动化测试时发现,无法找到以下窗口的控件,搜索后才知道原来是浏览器的对象无法识别windows的控件。
在这里插入图片描述
于是找到一篇看着比较靠谱的博文打算试一试:
https://www.cnblogs.com/ITester520/p/13203341.html
不过这篇博文的方法更全:
https://blog.csdn.net/huilan_same/article/details/52439546
使用第一篇博文中的pywin32方式:
测试网站:https://smallpdf.com/cn/jpg-to-pdf
代码:

import win32gui
import time
import win32con
from selenium import webdriver


driver = webdriver.Chrome()
driver.get('https://smallpdf.com/cn/jpg-to-pdf')
driver.maximize_window()
time.sleep(10)
# 找到选择文件元素
# file_ele = driver.find_element_by_css_selector('span.l0v3m7-7')
file_ele=driver.find_element_by_class_name('l3tlg0-0.hrcxSS')
file_ele.click()


time.sleep(2)
# #32770--对话框名字,即最外层整个弹窗
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)
# 上面三行代码依次寻找对象,直到找到文件名输入框Edit对象的句柄


# 找到打开按钮
button = win32gui.FindWindowEx(dialog, 0, 'Button', None)
time.sleep(3)
# 发送本地文件
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r'C:\Users\syt\Desktop\自动化测试\风景1.png')
time.sleep(3)
# 点击打开按钮
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)
time.sleep(3)
print(file_ele.get_attribute('value'))

该博文中的找到元素代码,运行代码后报错无法找到该元素
于是我在测试网站上检验了一下,真的找不到,就换了使用该元素的class属性定位
在这里插入图片描述
在浏览器中明明是可以定位到的,但是我运行代码就报错,无法定位到该元素
于我开始加等待,查看是否有框架等等,均不行。
在这里插入图片描述
最后突然想到之前看见过一篇博文,写道报该错误时候可以尝试将css的空格变成".",于是我就成功了
在这里插入图片描述
最后文件成功上传后的效果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值