上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径。另一种是使用第三方插件去上传文件。下面看下imput标签的方式。工具可以自己查下。

<!DOCTYPE html>
<html>
<head>
</head>
<body> <form action="demo_form.php">
<input type="file" name="pic" accept="image/*">
<input type="submit">
</form> </body>
</html>

将上面HTML代码复制到文本编辑器,然后保存成.htm文件。

from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.implicitly_wait(10)
dr.get('file:///C:/Users/ms/Desktop/new%201.htm')
dr.find_element_by_name('pic').send_keys('C:/Users/ms/Desktop/项目管理工具/项目管理工具缺陷统计.xlsx')

一般能定位到input标签就可以使用这样的方式来上传文件。

下载文件需要针对浏览器进行配置,或者使用第三方的插件。

火狐浏览器

from selenium import webdriver
import os
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir','D:\workspace')
profile.set_preference('browser.download.folderList',2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/x-python') dr = webdriver.Firefox(firefox_profile=profile)
dr.maximize_window()
dr.implicitly_wait(10)
dr.get('http://tungwaiyip.info/software/HTMLTestRunner.html')
dr.find_element_by_link_text('HTMLTestRunner.py').click()

代码是下载了原生的HtmlTestRunner。

browser.download.dir:指定下载路径,好像windows必须使用\来当路径符

browser.download.folderList:下载路径设置,0:下载到桌面、1:下载到浏览器默认地址、2:下载到指定路径

browser.download.manager.showWhenStarting:是否显示下载器,貌似没啥用,True或False都没看见

browser.helperApps.neverAsk.saveToDisk:设置Content-type,对应的类型将不再弹出保存提示框

可以F12开发者工具看请求,在响应头可以看到对应的Content-type

谷歌浏览器

from selenium import webdriver

option = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups':0,'download.default_directory':'d:\\'}
option.add_experimental_option('prefs', prefs) dr = webdriver.Chrome(chrome_options=option)
dr.maximize_window()
dr.implicitly_wait(10)
dr.get('http://tungwaiyip.info/software/HTMLTestRunner.html')
dr.find_element_by_link_text('HTMLTestRunner.py').click()

profile.default_content_settings.popups:设置0禁止弹出窗口

download.default_directory:设置下载路径

python3+selenium入门14-上传下载文件的更多相关文章

  1. selenium 用autoIT上传下载文件

    一.下载安装AutoIT 下载并安装AutoIT,下载链接:https://www.autoitscript.com/site/autoit/ AutoIT安装成功后,可以在开始菜单下看到AutoIT ...

  2. linux上很方便的上传下载文件工具rz和sz

    linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...

  3. [Linux]非常方便的上传下载文件工具rz和sz

     linux上非常方便的上传下载文件工具rz和sz (本文适合linux入门的朋友) [一般用于SecureCRT ssh中使用] █ 法一:直接用yum安装lrzsz(推荐) yum insta ...

  4. rz和sz上传下载文件工具lrzsz

    ######################### rz和sz上传下载文件工具lrzsz ####################################################### ...

  5. shell通过ftp实现上传/下载文件

    直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...

  6. SFTP远程连接服务器上传下载文件-qt4.8.0-vs2010编译器-项目实例

    本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,Qt4.8.0版本,vs2010编译器 qt4.8.0-vs2010编译器项目实例下载地址:CSD ...

  7. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  8. C#实现http协议支持上传下载文件的GET、POST请求

    C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...

  9. HttpClient上传下载文件

    HttpClient上传下载文件 java HttpClient Maven依赖 <dependency> <groupId>org.apache.httpcomponents ...

  10. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

随机推荐

  1. Spring Boot笔记六:Thymeleaf介绍

    目录 什么是thymeleaf? 创建最简单的thymeleaf thymeleaf语法 什么是thymeleaf? thymeleaf是一个模板引擎,是用来在Spring Boot中代替JSP的 引 ...

  2. 【转】Linux C下非特定波特率的配置和使用

    https://blog.csdn.net/jinhongdu/article/details/43413071  对于非标准的任意波特率需要用ioctl(fd, TIOCGSERIAL,  p)和i ...

  3. HDU - 5119 Happy Matt Friends(dp)

    题目链接 题意:n个数,你可以从中选一些数,也可以不选,选出来的元素的异或和大于m时,则称满足情况.问满足情况的方案数为多少. 分析:本来以为是用什么特殊的数据结构来操作,没想到是dp,还好队友很强. ...

  4. 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker

    昨晚遇到的这个问题,也知道Notifications service依赖底层的Service broker的.本以为只需要执行以下脚本对数据库启用Service broker即可. alter dat ...

  5. tomcat自动重新加载应用

    前言 当应用配置文件发生变化时,无需重启tomcat,可以使tomcat重新加载应用. 场景 假设存在一个J2EE应用A,对应war文件名称为A.war,部署在tomcat的webapps目录下,即: ...

  6. docker 系列 - Dock高阶知识点文章汇集

    docker 技术已经研究了一段时间, 基本的知识点和使用场景比较清楚了, 还有一些比较高阶的内容未曾尝试, 将来工作中如果能用到, 再深入研究吧. 这篇博文汇总了一些有用的文章链接. ======= ...

  7. php与java通用AES加密解密算法

    AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的 ...

  8. Docker摘要

    Docker https://www.docker.com/ 消除应用的依赖矩阵. 消除硬件依赖 和 软件依赖. Escape the app dependency matrix Eliminate ...

  9. 判断质数(Java)

    package day01; //输出1-100中质数,并且每十个换行 public class PrimeNum { public static void main(String[] args) { ...

  10. matplotlib-2D绘图库学习目录

    matplotlib的安装和 允许中文及几种字体 散点图 直线和点 子图 点的形状 条形图 堆叠条形图 直方图 颜色和样式字符串 饼状图  画多个图  画网格 线的形状  图例  坐标轴  画注释   ...