• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-08) 30次浏览 已收录 0个评论

文件上传功能是我们在日常开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于selenium+python实现文件上传操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

前言

selenium处理文件上传大致会有两种情况,一种是文件上传使用的是input标签元素,即,那么对这个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-600") 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-600");表示选中需要上传的文件

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<span style="color:transparent">来源gaodai#ma#com搞*!代#%^码$网</span>='file'and @lay-type='file']").click() # 运行Autoit脚本,执行上传 os.system("D:upload.exe") # 停留2秒 time.sleep(2) # 退出浏览器 driver.quit() 

总结

以上就是selenium+python实现文件上传操作的方法实例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:selenium+python实现文件上传操作的方法实例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址