您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:selenium+python实现文件上传操作的方法实例

51自学网 2021-10-30 22:22:58
  python
这篇教程selenium+python实现文件上传操作的方法实例写得很实用,希望能帮到您。

前言

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

方法如下

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

import timefrom 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 osimport timefrom 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文件上传内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


如何用Python画一些简单形状你知道吗
Python3.x+pycharm+Anaconda中缩小打包的.exe体积的问题
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。