python+selenium之上传文件

文件上传分input标签和非input标签,两种标签上传的方式不一样。

一、input标签
如果是input可以直接sendkeys赋值,传入问价的绝对路径就行。

driver.find_element_by_css_selector(".upload-pic").send_keys(r"E:\Python_script\Webdriver\shuiyin.png")

二、非input标签
这是主要是指button标签,我们需要借助第三方的模块来实现文件的上上传。
1,首先我们需要安装pywin32模块,使用命令安装

pip install pywin32

2,模块安装成功后就是导入模块了
一般我们直接导入import win32gui, win32con如果这样无法导入win32gui, 换种方式,可能是你的python版本不一样在,这时候就通过from win32 import win32gui 方式导入就行。

3,接下来就是使用pywin32模块完成文件的上传


# 上传凭证(非input型)
    driver.find_elements_by_tag_name("button")[1].click()
    time.sleep(3)  # 一定要加,弹出框后才有后续上传,之前因为没写弹窗没出后续执行无效
    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)  # 四级
    # 往文件名编辑框中输入文件路径
    # 上传操作
    win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, "E:\\1.jpg")  # 放入上传文件的绝对路径
    win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)  # 点击打开按钮
发布了3 篇原创文章 · 获赞 0 · 访问量 60

猜你喜欢

转载自blog.csdn.net/weixin_44990718/article/details/105006729
今日推荐