上传文件
WebDriver没有提供专门的上传方法。Web页面上传功能的操作打开本地的Windows窗口,WebDriver是无法操作Windows控件的
Web页面上传功能实现的方式:
普通上传:普通的附件上传将本地文件的路径作为一个值放在input标签中,通过from表单将这个值提交给服务器
插件上传:一般指基于Flash、JavaScript、Ajax等技术实现的上传功能
一、send_keys实现上传
upfile.html
<input type='file' name="file"/>
upfile.py
from selenium import webdriver
import os
driver=webdriver.Firefox()
file_path='file:///'+os.path.abspath('upfile.html')
#定位上传按钮,添加本地文件
driver.find_element_by_id('file').send_keys('d:\\upload_file.txt')
driver.quit()
二、Autolt实现上传 需要安装
三、下载
from selenium import webdirver
import os
fp =webdiriver.Firefox()
fp.set_preference('browser.download.folderList',2) //设置为0代表下载到浏览器默认的下载路径,设置成2代表保存到指定目录
fp.set_preference('browser.download.manager.showWhenStarting',False)//是否显示开始,True显示开,False不显示
fp.set_preference('browser.download.dir',os.getcwd())//指定下载文件的路径,os.getcwd()不需要传递参数,用于返回当前的目录
fp.set_preference('browser.helperApps.nerverAsk.saveToaDisk',"application/octet-stream") //下载文件的类型
//指定下载页面的Content-type,application/octet-stream为文件类型
driver=webdriver.Firefox(firefox_profile=fp)
driver.get("http://pypi.Python.org/selenium")
driver.find_element_by_partial_link_text('selenium2').click()
以上是Firefox浏览器的例子,其他浏览器略有不同
浙公网安备 33010602011771号