对于web页面的上传功能实现一般有以下两种方式:
1 . 普通上传:普通的附件上传是将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器;
2 . 插件上传:一般是指基于Flash/JavaScript/Ajax等技术实现的上传功能;
1 . send_keys实现上传
2 . AutoIt实现上传
一、send_keys实现上传
对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传。
bootstrap框架 upfile.html实现的效果
<!-- upfile.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="https://github.com/bootcdn/BootCDN/blob/1.0.1/ajax/libs/bootstrap/3.3.0/css/bootstrap-theme.min.css">
<script src="https://github.com/bootcdn/BootCDN/blob/1.0.1/ajax/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="row-fluid">
<div class="span6 well">
<h3>upload_file</h3>
<input type="file" name="file">
</div>
</div>
</body>
</html>
定位input标签,使用send_keys()指定本地文件路径
#upfile.py
from selenium import webdriver
import os,time
class UpFile:
def setup_method(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(10)
self.file_path = 'file:///' + os.path.abspath('upfile.html')
self.driver.get(self.file_path)
self.driver.maximize_window()
def tear_down(self):
self.driver.quit()
def up_file(self):
#定位上传按钮,添加本地文件
self.driver.find_element_by_name('file').send_keys("frame.py")
if __name__ == '__main__':
upfile = UpFile()
upfile.setup_method()
upfile.tear_down()
AutoIt实现上传
省略
warning :未经授权,不得转载
有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug
CSDN:带只拖鞋去流浪
知乎:带只拖鞋去流浪
哔哩哔哩:带只拖鞋去流浪