selenium+python实现文件上传操作的方法实例

 更新时间:2021年08月17日 11:23:31   作者:梦里有阳光  
文件上传功能是我们在日常开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于selenium+python实现文件上传操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

前言

selenium处理文件上传大致会有两种情况,一种是文件上传使用的是input标签元素,即<input type="file">,那么对这个input标签元素使用sendkeys方法输入文件的路径就可以完成上传,另一种是调用windows系统完成文件上传,即文件上传会弹出windows弹窗,此时则需要借助Autoit这样一个小工具结合selenium完成。

方法如下

1、文件上传使用的是input标签元素,selenium+python代码示例参考如下:

import time
from selenium import webdriver

# 实例化浏览器,访问目标网页,窗口最大化
driver = webdriver.Chrome()
driver.get("https://www.layui.com/v1/demo/upload.html")
driver.maximize_window()
# 定位上传元素
element=driver.find_element_by_xpath("//input[@type='file' and @lay-type='file']")
time.sleep(2)
# 输入文件路径,上传文件
element.send_keys("D:\\timg.jpg")
time.sleep(2)
# 退出浏览器
driver.quit()

2、windows系统弹窗完成文件上传,需使用Autoit;具体操作步骤如下。

第一步,安装Autoit,下载后,默认安装即可。

第二步,Autoit脚本编写,Autioit脚本执行的内容主要从打开上传按钮后开始。

(1)使用Autoit windows info组件识别windows窗口中的元素

按住Finder Tool按钮后拖动到指定位置识别元素,显示元素的各种属性。

(2)使用SciTE Script Editor组件编写文件上传脚本

脚本解释如下:

ControlFocus("打开","","Edit1");表示将当前的焦点聚焦到打开的弹窗上

ControlSetText("打开","","Edit1","D:\timg.jpg");表示选中需要上传的文件

ControlClick("打开","","Button1");表示点击弹窗中的打开按钮

(3)保存编写脚本,将编写的脚本转化为exe格式;选中编写的脚本,点击鼠标右键选择Compile Script点击确定。

第三步,selenium与Autoit脚本结合,实现文件上传。

(1)使用selenium点击文件上传按钮

(2)使用Java中的Runtime类引入Autoit脚本

例如编写完成的Autoit脚本存放在D盘根目录下,则引入方式为:Runtime.getRuntime().exec(“D:upload.exe”)

(3)完成后续操作

Autoit+selenium+python完成文件上传代码示例参考如下:

import os
import time
from selenium import webdriver

# 实例化浏览器,访问目标网页,窗口最大化
driver = webdriver.Chrome()
driver.get("https://www.layui.com/v1/demo/upload.html")
driver.maximize_window()
# 点击上传按钮
driver.find_element_by_xpath("//input[@type='file'and @lay-type='file']").click()
# 运行Autoit脚本,执行上传
os.system("D:upload.exe")
# 停留2秒
time.sleep(2)
# 退出浏览器
driver.quit()

总结

到此这篇关于selenium+python实现文件上传操作的文章就介绍到这了,更多相关selenium+python文件上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈python累加求和+奇偶数求和_break_continue

    浅谈python累加求和+奇偶数求和_break_continue

    这篇文章主要介绍了浅谈python累加求和+奇偶数求和_break_continue,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python不同格式打印九九乘法表示例

    Python不同格式打印九九乘法表示例

    大家好,本篇文章主要讲的是Python不同格式打印九九乘法表示例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • python开发微信服务号消息推送示例

    python开发微信服务号消息推送示例

    这篇文章主要为大家介绍了python开发微信服务号消息推送示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • python子类在多继承中使用MRO机制原理

    python子类在多继承中使用MRO机制原理

    这篇文章主要为大家介绍了python子类在多继承中使用MRO机制原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Django开发web后端对比SpringBoot示例分析

    Django开发web后端对比SpringBoot示例分析

    这篇文章主要介绍了Django开发web后端对比SpringBoot示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Laravel+Dingo/Api 自定义响应的实现

    Laravel+Dingo/Api 自定义响应的实现

    这篇文章主要介绍了Laravel+Dingo/Api 自定义响应的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • 解决pycharm最左侧Tool Buttons显示不全的问题

    解决pycharm最左侧Tool Buttons显示不全的问题

    今天小编就为大家分享一篇解决pycharm最左侧Tool Buttons显示不全的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python中requests.session()的用法小结

    Python中requests.session()的用法小结

    这篇文章主要介绍了Python中requests.session()的用法小结,可能大家对 session 已经比较熟悉了,也大概了解了session的机制和原理,但是我们在做爬虫时如何会运用到session呢,接下来要讲到会话保持,需要的朋友可以参考下
    2022-11-11
  • Python 输出详细的异常信息(traceback)方式

    Python 输出详细的异常信息(traceback)方式

    这篇文章主要介绍了Python 输出详细的异常信息(traceback)方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python pygame项目实战监听退出事件

    Python pygame项目实战监听退出事件

    这篇文章主要介绍了Python pygame项目实战监听退出事件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论