4.12 selenium 上传文件

对于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:带只拖鞋去流浪
知乎:带只拖鞋去流浪
哔哩哔哩:带只拖鞋去流浪

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容