python自动化下载_selenium+python自动化--文件下载弹窗处理(PyKeyboard)
前言
在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!)
有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果。
之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的。
最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserInput,详细安装教程地址Selenium+python自动化84-python3.6用PyUserInput
安装依赖包:
依赖pywin32
依赖pyHook
PyKeyboard键盘操作
PyUserInput模块里面主要有两个类:
PyMouse, 专门模拟鼠标操作
PyKeyboard,专门模拟键盘上的操作
先用手工在键盘上操作下,记住操作步骤:按Tab键—按Enter键
代码参考
# coding:utf-8
from selenium import webdriver
from pykeyboard import PyKeyboard
from pymouse import PyMouse
import time
driver = webdriver.Firefox()
driver.get("https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")
time.sleep(3)
# 默认在取消按钮上,先切换到保存文件上
k = PyKeyboard()
# 发送tab
k.press_key(k.tab_key)
k.release_key(k.tab_key)
time.sleep(3)
# 发送回车
这里用到两个方法,一个是press_key按住Tab键,另外一个是release_key释放按键。其实还有个方法tap_key
tap_key模拟点击
先看下tap_key源码是怎么设计的,实际上tap_key就是封装的press_key和release_key这2个方法
character 传对应的键盘事件
n=1 默认只点一次
interval=0 如果有多次点击操作,中间的间隙时间,默认sleep时间为0
def tap_key(self, character='', n=1, interval=0):
"""Press and release a given character key n times."""
for i in range(n):
self.press_key(character)
self.release_key(character)
time.sleep(interval)
改成tap_key操作
# coding:utf-8
from selenium import webdriver
from pykeyboard import PyKeyboard
from pymouse import PyMouse
import time
# **作者:上海-悠悠, QQ交流群:646645429**
driver = webdriver.Firefox()
driver.get("https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")
time.sleep(3)
# 默认在取消按钮上,先切换到保存文件上
k = PyKeyboard()
# 模拟Tab
k.tap_key(k.tab_key)
time.sleep(3)
# 发送Enter回车
k.tap_key(k.enter_key)
PyKeyboard其它操作
除了能模拟tab,enter这种操作,也能模拟在输入框输入内容.
基本操作方法,如输入h:k.tap_key(“h”)
# coding:utf-8
from selenium import webdriver
from pykeyboard import PyKeyboard
from pymouse import PyMouse
import time
# **作者:上海-悠悠, QQ交流群:646645429**
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
time.sleep(3)
k = PyKeyboard()
def input_str(s):
'''输入一串英文'''
for i in s:
k.tap_key(i)
k.tab_key(k.enter_key)
input_str("helloworld!")
python自动化下载_selenium+python自动化--文件下载弹窗处理(PyKeyboard)相关推荐
- python自动化下载_selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- python 滚动条方法_selenium+python 自动化中界面滚动条操作方法
虽然webdriver提供了操作浏览器的前进和后退的方法,但对于浏览器滚动条并没有提供相应的操作方法,以下使用的方法: 借助JavaScript来控制浏览器的滚动条,webdriver提供了execu ...
- python怎么下载教程-Python爬虫文件下载图文教程
而今天我们要说的内容是:如果在网页中存在文件资源,如:图片,电影,文档等.怎样通过Python爬虫把这些资源下载下来. 1.怎样在网上找资源: 就是百度图片为例,当你如下图在百度图片里搜索一个主题时, ...
- python软件下载安装-python安装最新下载_python安装绿色版 - 软件帝
python是一款跨平台的计算机语言编写软件,界面简洁,操作性强.python语言是一种面向对象的语言,具有简捷且清晰的语法特点,可以用于教育.桌面界面开发.软件开发.后端开发等方面,被专业人员预测为 ...
- python自动评论_selenium+python 的微博自动转赞评功能实现
放假了,在家制作了一个selenium+python的微博自动转赞评程序. 程序分为四部分,依次是:登录+点赞+评论+转发,当点赞达到用户上限时去评论,评论至上限时去转发,出现验证码则退出程序.演示视 ...
- python电脑下载网址-Python
Python官方版是一款相当出色的通用型编程语言.PyCharm官方版适用性极广,被用户广泛应用于各种编程操作,软件还拥有丰富全面的模块,并支持sockets编程,Python便捷好用,可以让您快速地 ...
- python教程下载视频-python怎么下载视频
在进行爬虫的时候,经常需要保存视频到本地.通常得先获得视频(.mp4)的下载链接,再设置保存到本地的路径(路径包括最后的命名, 例如:D:/1.mp4),因此函数传入的参数为url和path. 例子: ...
- python批量下载文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- python电脑下载方法-python 获取机器snpython下载文件的几种常用方法
python中下载文件常用的几个模块有urllib,urllib2,requests,方法也很简单,代码如下: 002pc.com从python 获取机器snpython下载文件的几种常用方法分析来看 ...
最新文章
- Github 2020年度报告:你以为新冠击溃了开发者?不!他们创造了更多代码...
- MacDown的使用规范总结 96 卞泽 2016.04.08 15:05* 字数 1273 阅读 4295评论 10喜欢 34 MacDown是什么? 请点击here MacDown下载地址,请点
- scp时候出现ssh Connection refused的解决方案
- MySQL知识点复习
- 赠李哲(帮别人名字作诗)
- 傻子都能看懂的马拉车Manacher
- java tls 证书_在使用Java 8重新协商TLS_1.2期间,服务器证书更改受到限制
- 面试官:原生GAN都没搞清楚,自己走还是我送你
- 【vue】使用Promise方法保证按顺序执行
- ios App开发的基本流程
- 文本处理工具grep、egrep的具体用法
- 版本控制工具svn和git
- linux新硬盘装系统,目前是windows,要全新硬盘安装linux,该怎么操作?
- 威联通NAS备份到百度网盘
- 找工作再也不愁之面试题全覆盖-微服务篇
- 技术源自洛克希德·马丁,光场XR眼镜FYR解析
- 软件测试需要学什么?测试学习大纲梳理
- 64位系统上运行32位程序的内存限制
- javapoet动态生成java代码
- 宏(macro)定义的简介
热门文章
- 上海·2020线下年会来了!| MongoDB,More than Document Database.
- 准大学生必看!这10个建议,真希望计算机专业的学生早点知道
- ArcGIS之3D Analyst
- 利用mathematica制作二维码
- Ajax实现验证用户登陆
- JAVASCRIPT---css定位布局(建议收藏)
- 2017暑假 第一周 学习总结(复习)
- 【chromium】常用设计模式:委托模式(Delegate Pattern)、观察者模式、 工厂模式。
- 国内镜像源教程(zabbix5.0安装)
- 计算机考试表格样式,Excel2007用表样式快速给表格加格式