python3+selenium入门14-上传下载文件
上传文件一种方式是通过定位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-上传下载文件的更多相关文章
- selenium 用autoIT上传下载文件
一.下载安装AutoIT 下载并安装AutoIT,下载链接:https://www.autoitscript.com/site/autoit/ AutoIT安装成功后,可以在开始菜单下看到AutoIT ...
- linux上很方便的上传下载文件工具rz和sz
linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...
- [Linux]非常方便的上传下载文件工具rz和sz
linux上非常方便的上传下载文件工具rz和sz (本文适合linux入门的朋友) [一般用于SecureCRT ssh中使用] █ 法一:直接用yum安装lrzsz(推荐) yum insta ...
- rz和sz上传下载文件工具lrzsz
######################### rz和sz上传下载文件工具lrzsz ####################################################### ...
- shell通过ftp实现上传/下载文件
直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...
- SFTP远程连接服务器上传下载文件-qt4.8.0-vs2010编译器-项目实例
本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,Qt4.8.0版本,vs2010编译器 qt4.8.0-vs2010编译器项目实例下载地址:CSD ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- C#实现http协议支持上传下载文件的GET、POST请求
C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...
- HttpClient上传下载文件
HttpClient上传下载文件 java HttpClient Maven依赖 <dependency> <groupId>org.apache.httpcomponents ...
- 初级版python登录验证,上传下载文件加MD5文件校验
服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...
随机推荐
- oracle里实例和数据库之间的关系
一个数据库服务器上可以装几个数据库它们都是用sid来标志,例如orcl1,orcl2,orcl3等等,一个数据库如orcl1中可以有多个实例吗? Oracle数据库,实际上应该是说,我们使用的是Ora ...
- [NIO-1]缓冲区
常用的是ByteBuffer.CharBuffer
- MVC 5 Scaffolder + EntityFramework+UnitOfWork Pattern 代码生成工具
MVC 5 Scaffolder + EntityFramework+UnitOfWork Pattern 代码生成工具集成Visual Studio 2013 MVC 5 Scaffolder + ...
- C#下RSA算法的实现(适用于支付宝和易宝支付)
RSA算法代码: using System; using System.Collections.Generic; using System.Text; using System.IO; using S ...
- Java根类Object的方法说明
Java中的Object类是所有类的父类,它提供了以下11个方法: public final native Class<?> getClass() public native int ha ...
- VS下个人认为比较实用的插件
懒得打字了,直接贴图
- C# RestoreDirectory
OpenFileDialog与SaveFileDialog都有RestoreDirectory属性,这个属性默认是false,打开一 个文件后,那么系统默认目录就会指向刚才打开的文件.如果设为true ...
- [C++]数值与字符串转换问题
#include <stdio.h>//sprintf #include <stdlib.h>//atof,atol,strtod,strtol using namespace ...
- luogu P5234 [JSOI2012]越狱老虎桥
传送门 题目要求割掉一条边后使得图不连通,那么可以使用tarjan算法求出所有的割边,然后把边双缩成点,就能得到一棵树,现在问题是在加入一条边的情况下,割掉最小的一条边使得图不连通,割掉的这条边权值最 ...
- Ubuntu、Windows输入命令appium-doctor提示未找到命令
输入命令:appium-doctor时,一直报错,提示“未找到命令”,但是输入命令:appium -v能够正确输出我安装版本,这是怎么回事呢? 原来appiu-doctor在1.5.3版本之后没有了需 ...