python+selenium上传文件——input标签
我们要区分出上传按钮的种类,大体上可以分为两种:
第一种普通上传:将本地文件路径作为一个值,放在input标签中,通过form表单将这个值提交给服务器;
第二种插件上传:是通过Flash、JavaScript、Ajax等实现(标签非input)的上传功能;
---------------------------------------------------------------------------------------------------
对于通过input标签实现的上传功能,可以将其看做一个输入框,通过send_keys()指定本地文件路径的方式,
实现文件上传
from selenium import webdriver
import time driver = webdriver.Firefox()
driver.implicitly_wait(20)
driver.get("http://sahitest.com/demo/php/fileUpload.htm")
driver.find_element_by_id('file').send_keys('C:\\Users\\del\\Desktop\\文本.txt') time.sleep(10)
driver.quit()
---------------------------------------------------------------------------------------------------------
from selenium import webdriver
import time driver = webdriver.Firefox()
driver.implicitly_wait(20)
driver.get("file:///C:/Users/del/Desktop/tanchuang.html") time.sleep(10) driver.find_element_by_id('file').send_keys('C:\\Users\\del\\Desktop\\文本.txt') time.sleep(10)
driver.quit()
===================================================================================
file:///C:/Users/del/Desktop/tanchuang.html的源代码
<html> <body> <form name="form1" action="fileUpload.php" method="post" enctype="multipart/form-data">
<label for="file">File:</label>
<input type="file" name="file" id="file" />
<br />
<input type="hidden" name="multi" value="false"/>
<input type="submit" name="submit" value="Submit Single" />
</form> <form name="form3" action="fileUpload.php?q=a$&*+^" method="post" enctype="multipart/form-data">
<label for="file">File:</label>
<input type="file" name="file" id="file5" />
<br />
<input type="hidden" name="multi" value="false"/>
<input type="submit" name="submit" value="Submit Single" />
</form> <form action="fileUpload.php" method="post" enctype="multipart/form-data">
<label for="file2">File[]:</label>
<input type="file" name="file[]" id="file2" />
<br />
<label for="file3">File[]:</label>
<input type="file" name="file[]" id="file3" />
<br />
<input type="hidden" name="multi" value="true"/>
<input type="submit" name="submit" value="Submit Array" />
</form> <script>
function setAction(){
document.form2.action = "fileUpload.php";
}
</script> <form name="form2" action="" method="post" enctype="multipart/form-data" onsubmit="setAction()">
<label for="file">File:</label>
<input type="file" name="file" id="file4" />
<br />
<input type="hidden" name="multi" value="false"/>
<input type="submit" name="submit" value="Submit Single" />
</form> <form action="fileUpload.php" method="post" enctype="multipart/form-data">
<label for="files">Files:</label>
<input type="file" name="file[]" id="files" multiple/>
<br />
<input type="hidden" name="multi" value="true"/>
<input type="submit" name="submit" value="Submit Multiple" />
</form> <div id="fileDetails">
<label for="file5">Files:</label>
<input type="file" name="file" id="fileWdValidation" multiple/>
</div> <!--<div id="filesDetails">
<label for="file2">Files:</label>
<input type="file" name="file" id="files1" multiple/>
</div> --> <script>
function fillFileDetails(){
var files = this._file;
var fileDetails = "<br />";
for(var i=0; i<files.length; i++){
fileDetails += "<span class='fileName'>File Name:"+ files[i].name +"</span> <br />";
fileDetails += "<span class='fileSize'>File Size:"+ files[i].size +"</span> <br />";
fileDetails += "<span class='fileType'>File Type:"+ files[i].type +"</span> <br />";
}
document.getElementById("fileDetails").insertAdjacentHTML("beforeend", fileDetails);
} document.getElementById("fileWdValidation").onchange = fillFileDetails;
//document.document.getElementById("files1").onchange = fillFileDetails; </script>
</body>
</html>
python+selenium上传文件——input标签的更多相关文章
- python+selenium:解决上传文件<input type='file'>标签属性被css的visibility隐藏导致无法定位元素的问题
要想上传文件,需要找到在HTML中<input type="file" />这个标签,有它就可以利用send_keys上传文件,不过这里的<input>元素 ...
- Java+Selenium 上传文件,点击选择“浏览文件”按钮,报错invalid argument
Java+Selenium 上传文件,点击选择"浏览文件"按钮,报错invalid argument 解决代码: Actions action=new Actions(driver ...
- Python + Selenium 上传元素为button类型的文件的解决办法
工具:winspy Python所需安装模块:pywin32 (安装语句:pip install -i https://pypi.douban.com/simple pywin32) 元素位置: 对应 ...
- selenium 上传文件方法补充——SendKeys、win32gui
之前和大家说了input标签的上传文件的方式: <selenium2 python 自动化测试实战>(13)——上传文件 现在好多网站上传的标签并不是input,而是div之类的比如: 全 ...
- Selenium 上传文件失败,解决办法一
昨个改程序遇到一个问题,UI上面有需要上传文件的地方.但是我不知道怎么让Selenium完成 点击上传文件按钮->在弹出的文件选择窗口中选择路径和文件,点确定. 要知道弹出窗口属于window的 ...
- Selenium上传文件
selenium自带了对应的API可以上传问题,如果这个上传文件的html code中显示的type是file那么你就可以使用下面的代码上传文件. /** * click the upload but ...
- python requests上传文件 tornado 接收文件
requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'fil ...
- Selenium上传文件方法总结
Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有直接的方法去实现上传本地文件,这里总结了两种上传文件的方式. 一.利用Robot类处理文件上传. 其大致流 ...
- selenium 上传文件。
上传文件 driver.findElement(By.xpath("//input[@type='file']"))).sendKeys("C:\\testContent ...
随机推荐
- calculate_gain
torch.nn.init.calculate_gain(nonlinearity,param=None) 对于给定的非线性函数,返回推荐的增益值.这些值如下所示: relu_gain=nn.init ...
- Jmeter启动jmeter-server.bat 报java.io.FileNotFoundException:rmi_keystore.jks 解决方法
解决方法:1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl ...
- rsync快速部署记录
rsync快速部署记录 安装rsync和使用环境:客户端:10.192.30.59 fudao_db_cluster_002 (将本地文件备份到服务端)服务端:10.192.30.60 fudao_d ...
- 2019 第十届 SWPUCTF writeup(Pwn)
p1KkHeap 0.环境 1.文件信息 2.文件开启的保护 3.IDA分析 main函数 add show edit delete delete功能出现了指针悬浮的问题,配合上tcache,可以任意 ...
- java——SimpleDateFormat与DateTimeFormatter
https://www.jianshu.com/p/b212afa16f1f SimpleDateFormat不是线程安全的 DateTimeFormatter是线程安全的
- postman—随机数和Monitors
postman做重复测试时,随机数就有很大的作用,不用每次都输入 在postman的Params中,输入一个左大括号,会显示三种随机数: 也可以在body中设置 随机数如下: {{$guid}}:添加 ...
- js-计算textarea可剩余的字数???
效果图 HTML: JS:
- winform 皮肤
winform 皮肤 https://github.com/kwonganding/winform.controls
- Linux基础教程 linux中使用find命令搜索文件常用方法记录
find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...
- Codeforces 950C Zebras ( 贪心 && 模拟 )
题意 : 给出一个 01 串,要求你将其分隔出若干个子序列 ( 每个数字只能属于某一个子序列 ) ,子序列必须满足由 0 开头和结尾,且中间需 01 交替构成.若无法做到,则输出 -1. 分析 : ...