博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python+selenium——实现文件上传
阅读量:6187 次
发布时间:2019-06-21

本文共 1068 字,大约阅读时间需要 3 分钟。

文件上传是web页面上很常见的一个功能一般分两个场景:

一、一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决

二、另外一种是非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库。

    1 Autolt 需要去调用其生成的.au3或.exe文件.----不推荐,了解

    2 SendKeys第三方库(目前只支持到2.7版本)----不推荐,了解
    3 Python pywin32库,识别对话框句柄,进而操作 ------pip install pywin32

首先来看第一种input标签——这种有一个很明显的标识:它是一个input标签,并且type属性的值为file,如下图红色框框

 

 

from selenium import webdriverdriver=webdriver.Chrome()driver.get("http://test.api2.danglaoshi.net:3001/course/list")driver.add_cookie({
"name":"sid","value":"s%3AaZDRAZT2cT-U83UIXOPjoEDFa3oGd57B.UtMLs9VnZuyr8EAH38h9ymRK45bI%2BINUk%2Fz59N8H8mM"})driver.get("http://test.api2.danglaoshi.net:3001/course/list")driver.find_element_by_xpath("//button[@οnclick=\"window.location.href='/course/addCourse'\"]").click()# 定位选择按钮,并从本地选择文件driver.find_element_by_xpath("//input[@id=\"courseThumbnailInput\"]").send_keys(r"C:\Users\TTT\Desktop\2028.jpg_wh300.jpg")#定位上传按钮,点击上传文件driver.find_element_by_xpath("//*[@id=\"addCourseForm\"]/div/div[1]/div/div/div/div[1]/div/div[1]/div[2]/div[2]/a").click()

 

转载于:https://www.cnblogs.com/yhms/p/10895620.html

你可能感兴趣的文章
细说Linq之Aggregate
查看>>
Gradle 提速:每天为你省下一杯喝咖啡的时间
查看>>
《iOS 核心动画高级技巧》笔记
查看>>
前端小知识10点(2019.5.18)
查看>>
Tensorflow minist-softmax
查看>>
Kotlin中的also、let、run、with、apply函数的用法
查看>>
常用 Markdown 语法汇总
查看>>
12、Flutter Widget - InheritedModel;
查看>>
VR全景创业:这些创业条件你具备了吗?
查看>>
WEB前端学习如何分清主次和优先级?
查看>>
小程序·云开发——正在悄悄改变小程序开发的模式
查看>>
运行期间抛出NoSuchMethodError模拟及原因分析
查看>>
基于Spring Boot2 + Spring Security OAuth2 实现单点登陆(一)
查看>>
跟我一起来用C++写web服务器吧(二)
查看>>
获取图片的旋转角度信息
查看>>
句柄泄漏和Handler的底层机制
查看>>
Refresh Token的使用场景以及如何与JWT交互
查看>>
聊聊jvm的CompressedClassSpace
查看>>
未来几年,BCH超越BTC的路径是什么?
查看>>
import和require的区别
查看>>