前言

在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)相关推荐

  1. python自动化下载_selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

    前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...

  2. python 滚动条方法_selenium+python 自动化中界面滚动条操作方法

    虽然webdriver提供了操作浏览器的前进和后退的方法,但对于浏览器滚动条并没有提供相应的操作方法,以下使用的方法: 借助JavaScript来控制浏览器的滚动条,webdriver提供了execu ...

  3. python怎么下载教程-Python爬虫文件下载图文教程

    而今天我们要说的内容是:如果在网页中存在文件资源,如:图片,电影,文档等.怎样通过Python爬虫把这些资源下载下来. 1.怎样在网上找资源: 就是百度图片为例,当你如下图在百度图片里搜索一个主题时, ...

  4. python软件下载安装-python安装最新下载_python安装绿色版 - 软件帝

    python是一款跨平台的计算机语言编写软件,界面简洁,操作性强.python语言是一种面向对象的语言,具有简捷且清晰的语法特点,可以用于教育.桌面界面开发.软件开发.后端开发等方面,被专业人员预测为 ...

  5. python自动评论_selenium+python 的微博自动转赞评功能实现

    放假了,在家制作了一个selenium+python的微博自动转赞评程序. 程序分为四部分,依次是:登录+点赞+评论+转发,当点赞达到用户上限时去评论,评论至上限时去转发,出现验证码则退出程序.演示视 ...

  6. python电脑下载网址-Python

    Python官方版是一款相当出色的通用型编程语言.PyCharm官方版适用性极广,被用户广泛应用于各种编程操作,软件还拥有丰富全面的模块,并支持sockets编程,Python便捷好用,可以让您快速地 ...

  7. python教程下载视频-python怎么下载视频

    在进行爬虫的时候,经常需要保存视频到本地.通常得先获得视频(.mp4)的下载链接,再设置保存到本地的路径(路径包括最后的命名, 例如:D:/1.mp4),因此函数传入的参数为url和path. 例子: ...

  8. python批量下载文件-Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  9. python电脑下载方法-python 获取机器snpython下载文件的几种常用方法

    python中下载文件常用的几个模块有urllib,urllib2,requests,方法也很简单,代码如下: 002pc.com从python 获取机器snpython下载文件的几种常用方法分析来看 ...

最新文章

  1. Github 2020年度报告:你以为新冠击溃了开发者?不!他们创造了更多代码...
  2. MacDown的使用规范总结 96 卞泽 2016.04.08 15:05* 字数 1273 阅读 4295评论 10喜欢 34 MacDown是什么? 请点击here MacDown下载地址,请点
  3. scp时候出现ssh Connection refused的解决方案
  4. MySQL知识点复习
  5. 赠李哲(帮别人名字作诗)
  6. 傻子都能看懂的马拉车Manacher
  7. java tls 证书_在使用Java 8重新协商TLS_1.2期间,服务器证书更改受到限制
  8. 面试官:原生GAN都没搞清楚,自己走还是我送你
  9. 【vue】使用Promise方法保证按顺序执行
  10. ios App开发的基本流程
  11. 文本处理工具grep、egrep的具体用法
  12. 版本控制工具svn和git
  13. linux新硬盘装系统,目前是windows,要全新硬盘安装linux,该怎么操作?
  14. 威联通NAS备份到百度网盘
  15. 找工作再也不愁之面试题全覆盖-微服务篇
  16. 技术源自洛克希德·马丁,光场XR眼镜FYR解析
  17. 软件测试需要学什么?测试学习大纲梳理
  18. 64位系统上运行32位程序的内存限制
  19. javapoet动态生成java代码
  20. 宏(macro)定义的简介

热门文章

  1. 上海·2020线下年会来了!| MongoDB,More than Document Database.
  2. 准大学生必看!这10个建议,真希望计算机专业的学生早点知道
  3. ArcGIS之3D Analyst
  4. 利用mathematica制作二维码
  5. Ajax实现验证用户登陆
  6. JAVASCRIPT---css定位布局(建议收藏)
  7. 2017暑假 第一周 学习总结(复习)
  8. 【chromium】常用设计模式:委托模式(Delegate Pattern)、观察者模式、 工厂模式。
  9. 国内镜像源教程(zabbix5.0安装)
  10. 计算机考试表格样式,Excel2007用表样式快速给表格加格式