webdriver API:上传下载文件

  • 上传文件

普通上传:将本地文件的路径作为一个值放在input标签中,通过form表单提交的时候将这个值提交给服务器

上传的输入框标签必须为input

#送一个文件的绝对路径到上传输入框
dr.find_element_by_name('file').send_keys('D:\\uploadfile.txt')  

插件上传:基于flash、JavaScript、Ajax等技术实现的上传功能或插件

可以使用专门用于Windows操作自动化测试工具autoID编写代码,然后转成exe格式后在selenium上传本地文件

上传本地文件需要导入os类:import os

from selenium import webdriver
import os

dr = webdriver.Firefox()
dr.get("http://")

dr.find_element_by_name('file').click()  #点击上传文件按钮
os.system('D:\\uploadfile.txt')   #上传本地文件

 autoID上传文件编码

ControlFocus("打开","","Edit1")
#识别windows窗口("title","text","controlid")
WinWait("[CLASS:#32770]","",10)
#窗口等待十秒
ControlSetText("打开", "", "Edit1", "C:\Users\happy\Desktop\FileUpload.html")
#想输入框中输入需要上传的地址
 Sleep(2000)
ControlClick("打开", "","Button1");
#点击[打开]按钮

 

  • 下载文件
from selenium import webdriver
import os

#对火狐浏览器下载进行设置
fp = webdriver.FirefoxProfile()  
#设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定的目录
fp.set_preference("browser.download.folderList",2)  
#True为显示开始,Flase为不显示开始
fp.set_preference("browser.download.manager.showhenStarting",True)
#将文件下载到当前脚本文件的路径中
fp.set_preference("browser.download.dir",os.getcwd())
#下载文件类型
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","applaction/octet-stream")


driver = webdriver.Firefox(firefox_profile = fp)   #将设置参数传给浏览器
driver.get("https://pypi.org/project/selenium/#files")

driver.find_element_by_xpath("//*[@id='content']/div[3]/table/tbody/tr[3]/td[1]/span/a[1]").click()

猜你喜欢

转载自www.cnblogs.com/hlbzzt/p/9905779.html