上传文件

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浏览器的例子,其他浏览器略有不同

 

posted @ 2019-03-16 15:58  期待me  阅读(71)  评论(0)    收藏  举报