上传文件

# 上传文件
'''
上传文件是比较常见的 Web 功能之一,但 WebDriver 没有专门用于上传文件的方法
实现文件上传的关键在于思路,一般通过以下两种方式上传文件
    普通上传: 将本地文件路径作为一个值放在 input 标签中, 通过 form 表单将这个值提交给服务器
    插件上传: 一般是指基于 Flash、 JavaScript 或 Ajax 等技术实现的上传功能。
'''

import os
from selenium import webdriver


filePath = os.path.abspath('./files/')

driver = webdriver.Firefox()
uploadPage = 'file:///' + filePath + 'upfile.html'
driver.get(uploadPage)


# 定位上传按钮, 添加本地文件
driver.find_element_by_id("file").send_keys(filePath + 'text.txt')

'''
这里测试的页面(upfile.html) 和上传文件 (text.txt) 位于与当前程序同目录的 files/ 目录下
'''

'''
通过这种方式上传,就避免了操作 Windows 控件。
如果能找到上传的 input 标签,那么基本可以通过 send_keys() 方法输入一个文件路径实现上传
'''

 




posted @ 2020-02-15 21:49  gupanpan  阅读(56)  评论(0)    收藏  举报