selenium+python自动化79-文件下载(SendKeys)

前言

文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作。

SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决

 

一、下载场景

1.当点到下载按钮时候,会弹出如下页面

2.如果想点“保存文件”按钮,解决问题思路:

- 先按TAB键,移动光标聚焦到保存按钮上

- 再按下ENTER键,这样就能保存了

 

二、代码实现

# coding:utf-8
from selenium import webdriver
import SendKeys
import time

driver = webdriver.Firefox()
driver.get("https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")

time.sleep(3)
# 默认在取消按钮上,先切换到保存文件上
SendKeys.SendKeys("{TAB}")  # 发送TAB键

time.sleep(3)
# 火狐上第一次回车没生效,所以多发一次回车
SendKeys.SendKeys("{ENTER}")   # 发送回车键
SendKeys.SendKeys("{ENTER}")   # 发送回车键

学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429

也可以关注下我的个人公众号:

《selenium webdriver基于python源码案例》已出书:selenium webdriver基于Python源码案例(购买此书送对应PDF版本)

 

时间: 2024-10-10 21:58:04

selenium+python自动化79-文件下载(SendKeys)的相关文章

selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代

前言 python2上安装SendKeys库,对于不好定位的元素,用快捷键操作是极好的,那么在3.6上安装时,会报错 python3.6安装SendKeys报错 1.python3.6安装SendKeys是无法安装的,会报错 pip install SendKeys 32位的python3.6安装PyUserInput 1.python3.6分2个版本,1个是32位的python3.6;另外一个是64位的python3.6. 如果你的电脑是32位的,装python3.6 32位版本,直接用pip

selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)

优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 优化点击截图放大不清晰问题 增加饼图统计 失败后重试功能 兼容python2.x 和3.x 报告效果 1.生成的测试报告效果如下图,默认展示报错和异常的用例,失败重试的用例结果也会统计进去. 2.点击显示截图,可以直接显示截取的图片,无需保存到本地 table表格 1.修改表格的td后面内容,可以

selenium+python自动化87-Chrome浏览器静默模式启动(headless)

前言 selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. 但是呢,phantomjs这个坑还是比较多的,并且遇到问题也看不到页面,无法排查问题. 事实上Chrome浏览器也是可以实现静默模式,在电脑上不显示页面,也能实现自动化测试. 小编环境: python 3.6 selenium 3.6.0 chrome 63.0.3239.84 chromdriver 2.33.506120 (我这个配置是亲测可行的,

selenium+python自动化83-pip安装selenium报Read time out HTTPSConnectionPool(host='pypi.python.org' port443)

遇到问题 1.有些小伙伴在用pip安装selenium时候报 Read time out HTTPSConnectionPool(host='pypi.python.org' port443) 2.估计这些电脑不怎么正经,总是有奇葩问题 time out解决办法 1.如果是因为网速问题,超时了,可以加大pip安装时候的超时时间 pip --default-timeout=1000 install selenium==2.53.6 2.要是发现等了几分钟还是跟蜗牛一样在爬,那就设置个代理,用下面方

selenium+python自动化77-autoit文件上传

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

selenium+python自动化82-只截某个元素的图

前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. selenium截图 1.selenium提供了几个截取全屏的方法 get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True. filename参数是保存文件的路径. driver.get_sc

selenium+python自动化84-chrome手机wap模式

前言 我的环境 chrome 62 chromedriver 2.33 遇到问题 1.登录手机版淘宝时候,验证码无法通过点击事件触发 [wap版淘宝](https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0) F12手机模式 1.按f12,点下图按钮(Toggle device toolbar)切换成手机模式 2.切换成手机模式后发现输入手机号后,手动操作是可以触发验证码的 chrome设置手机模式 1.添加Options配置,设置成手机模式访问

selenium+python自动化86-Chrome正在受到自动软件的控制

出现问题 1.用selenium启动浏览器出现'Chrome正在受到自动软件的控制' 2.如果不想看到这种讨厌的提示语,启动浏览器时候加个配置就行了 disable-infobars 1.在浏览器配置里加个参数,忽略掉这个警告提示语 option = webdriver.ChromeOptions() option.add_argument('disable-infobars') 参考代码 # coding:utf-8 from selenium import webdriver # 加启动配置

Selenium2+python自动化27-查看selenium API

前言     前面都是点点滴滴的介绍selenium的一些api使用方法,那么selenium的api到底有多少呢?本篇就叫大家如何去查看selenium api,不求人,无需伸手找人要,在自己电脑就有.     pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现! 一.pydoc     1.到底什么是pydoc? ,这个是准确的解释:Documentation generato