python selenium上传文件——input标签

python selenium上传文件——input标签,第1张

我们要区分出上传按钮的种类,大体上可以分为两种:


第一种普通上传:将本地文件路径作为一个值,放在input标签中,通过form表单将这个值提交给服务器;

第二种插件上传:是通过Flash、JavaScript、Ajax等实现(标签非input)的上传功能;

---------------------------------------------------------------------------------------------------

对于通过input标签实现的上传功能,可以将其看做一个输入框,通过send_keys()指定本地文件路径的方式,

实现文件上传

python selenium上传文件——input标签,复制代码,第2张
from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.implicitly_wait(20)
driver.get('/demo/php/fileUpload.htm')
driver.find_element_by_id('file').send_keys('C:\Users\del\Desktop\文本.txt')

time.sleep(10)
driver.quit()
python selenium上传文件——input标签,复制代码,第2张

 ---------------------------------------------------------------------------------------------------------

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的源代码
python selenium上传文件——input标签,复制代码,第2张
<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标签,复制代码,第2张
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » python selenium上传文件——input标签

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情