selenium+python上传文件


上传文件控件有两种:一种是input标签,另外一种是非input标签,比如button标签、div标签等

一、input标签很简单,使用send_keys就可以,只是有时候要用js将元素改为可输入,dr.find_element(By.XPATH, ‘//div[text()=”+上传图片”]’).send_keys(pic_path)

二、非input标签

我们这里使用WinSpy工具(充当类似F12定位元素的功能),和pywin32工具(操作Windows窗口)

一)WinSpy工具的安装和使用:

1.下载WinSpy ,解压即可使用

下载地址:https://sourceforge.net/projects/winspyex/

2.在winspy工具左上角是个聚焦按钮,通过拖动的方式拖动到上传弹出框的对应位置(如文件路径输入框)后松开,winspy界面会显示当前定位的Text文本值(此处为空)和Class属性值(Edit)

selenium+python上传文件

 

 点击下面的【Tree】按钮,可以展示当前元素的上下级。可以看到,Edit父级是ComboBox,ComboBox父级是ComboBoxEx32,ComboBoxEx32父级是#32770,它的父级是Desktop(桌面),所以当前窗口的根节点是#32770。理清关系后,可以进入下面的写代码环节。

selenium+python上传文件

 

 

二)安装及使用pywin32

1.安装pywin32:

命令行运行:pip install -i https://pypi.douban.com/simple pywin32

2.导入及使用
import win32gui
import win32con

# 一级窗口”#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) # 四级
# 打开按钮
button = win32gui.FindWindowEx(dialog, 0, ‘Button’, “打开(&O)”) # 二级

# 输入文件的绝对路径,点击“打开”按钮
pt = obj_path + “//pic//hua.jpg”
print(pt)
win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, pt) # 发送文件路径
# win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, ‘D://wuxx//PycharmProjects//pythonProject//hua.jpg’) # 发送文件路径
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 点击打开按钮”’

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/244433.html

(0)
上一篇 2022年4月17日
下一篇 2022年4月17日

相关推荐

发表回复

登录后才能评论