Selenium+Python浏览器下载弹窗的处理

Selenium+Python浏览器下载弹窗的处理


在使用selenium实现自动化下载的时候,遇到一个比较头疼的问题,就是浏览器下载弹窗的处理。由于这个弹窗是浏览器系统自己弹出的,所以用selenium定位弹窗并操作的方法并不可行,在网上找了很多资料,终于解决了,记录一下解决问题的过程吧。常见的处理方法如下:

【指定下载路径,不弹出弹框,直接下载到指定路径】

Firefox文件下载

对于Firefox,需要我们设置其Profile
  • browser.download.dir:指定下载路径
  • browser.download.folderList:设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
  • browser.download.manager.showWhenStarting:在开始下载时是否显示下载管理器
  • browser.helperApps.neverAsk.saveToDisk:对所给出文件类型不再弹出框进行询问
---实例----
from selenium importwebdriver
from time importsleepprofile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir','d:\\')
profile.set_preference('browser.download.folderList',2)
profile.set_preference('browser.download.manager.showWhenStarting',False)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk','application/zip')driver =webdriver.Firefox(firefox_profile=profile)driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

Firefox需要针对每种文件类型进行设置

Chrome 文件下载

Chrome浏览器类似,设置其options:

  • download.default_directory:设置下载路径
  • profile.default_content_settings.popups:设置为 0 禁止弹出窗口

---实例----

# -*- coding: utf-8 -*-from selenium import webdriver
from time import sleepoptions = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
options.add_experimental_option('prefs', prefs)driver = webdriver.Chrome(executable_path='D:\\chromedriver.exe', chrome_options=options)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

但是,发现在selenium+firefox的配置下并不能生效!于是就在网上继续找,找到了下面这种方法

新建火狐浏览器的profile,设置测试场景的配置,默认自动保存,直接跳过下载窗口】

步骤:
1、火狐下创建一个新的profile,创建过程参考
创建独立的Firefox profile
2、启动新建的profile浏览器,让浏览器学习下载的操作(把下载操作的步骤操作一遍,让浏览器的应用程序中出现该类型操作的选择项)



3、设置脚本,脚本设置如下:

fp=webdriver.FirefoxProfile("新建profile的访问路径")    #注意是profile路径,不是bat文件的路径,一般位于火狐浏览器的数据目录下  
browser = webdriver.Firefox(fp)     #启动浏览器,加载profile</strong></span></span>
这样就会自动加载新的profile来运行脚本.此类方法在火狐上面验证OK。可以很完美的解决下载弹窗的问题,其他浏览器可以先尝试前一种方法。

声明:本文的各种解决方案为参考其他网友的文章,本人只是做了整理和记录。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252021.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

火狐浏览器50Linux32位,火狐浏览器32位完整离线安装包下载

功能介绍 火狐浏览器32位完整离线安装包下载 火狐浏览器32位(firefox)是款非常优秀的网上浏览工具。火狐浏览器(firefox)是唯一一款自由的浏览器,您可以根据自己喜好,选择添加自己需要的功能,打造专属自己的个性浏览器,同时软件也是为用户提供了极快、安全的上网体验,喜欢…

火狐linux 32位,火狐浏览器32位电脑版下载,火狐浏览器官方下载最新版电脑版32位 v1.0 - 浏览器家园...

火狐浏览器32位电脑版是款非常优秀的网上浏览工具。火狐浏览器(firefox)是唯一一款自由的浏览器&#xff0c;您可以根据自己喜好&#xff0c;选择添加自己需要的功能&#xff0c;打造专属自己的个性浏览器&#xff0c;同时软件也是为用户提供了最快、最安全的上网体验&#xff…

电脑浏览器下载速度很慢怎么办

有网友反映自己的浏览器下载速度很慢怎么办&#xff1f;这种通过可能是浏览器缓存太多&#xff0c;没有优化等原因导致。下面小编就以几种常用的浏览器为例&#xff0c;给大家解答下浏览器下载速度很慢的解决方法。 工具/原料&#xff1a; 系统版本&#xff1a;windows10系统…

如何在谷歌浏览器官网下载谷歌浏览器32位、64位或其他版本最新的离线安装包?

下面的网址需要能访问到外网&#xff0c;如果你没有科学上网软件的话&#xff0c;直接用下面的阿里云网盘链接下载就好&#xff0c;都是我自己整理的完整离线安装包&#xff1a; 阿里云盘分享 首先我们下载一个适用于 Windows 10/8.1/8/7 系统的64位谷歌浏览器正式版的离线安装…

改进的yolo目标检测(yolo创新与改进)

目标检测是计算机视觉领域中的一个重要问题,它需要从图像或视频中检测出物体的位置和类别。近年来,深度学习技术在目标检测领域取得了显著的进展,其中一个重要的方法是基于YOLO(You Only Look Once)算法的目标检测。 YOLO算法的优点是速度快,但是在检测小物体和密集物体…

【童晶老师《Python游戏趣味编程》在PyCharm中编辑】

童晶老师《Python游戏趣味编程》在PyCharm中编辑 不想再 海归编辑器 里编辑&#xff0c;想在PyCharm 中编辑要安装什么库安装库三个库安装完成&#xff0c;开始运行 不想再 海归编辑器 里编辑&#xff0c;想在PyCharm 中编辑要安装什么库 在学习童老师的《Python游戏趣味编程》…

Python制作自己的第一人称射击游戏

(仿cf) 作为一杆老枪&#xff0c;我觉得我必须站出来了&#xff0c;现在世风日下&#xff0c;于是我开始用Python自己制作一个射击游戏。 目录 (仿cf)1.游戏画面1.1开始1.2射击怪物 2.涉及知识点3.代码3.1发射声3.2背景3.3射击效果 4.经验总结 1.游戏画面 1.1开始 1.2射击怪物…

【Python游戏】Python实现一个推箱子小游戏 | 附带源码

相关文件 想学Python的小伙伴可以关注小编的公众号【Python日志】 有很多的资源可以白嫖的哈&#xff0c;不定时会更新一下Python的小知识的哈&#xff01;&#xff01; 需要源码的小伙伴可以在公众号回复推箱子小游戏 Python源码、问题解答学习交流群&#xff1a;773162165 …

小学生python游戏编程3----拼图游戏-准备

小学生python游戏编程3---拼图游戏-准备 主要设计1、背景2、图片分隔3、把小图片打乱顺序组装成拼图 应用知识点1、python知识点1.1 Pillow(PIL)库的用法介绍1.2 PIL安装1.3 Image属性1.4 image方法 功能截图代码实现总结源码获取 主要设计 1、背景 早在1760年&#xff0c;法…

基于Python的贪吃蛇游戏设计

摘要 本次论文设计的主题是贪吃蛇游戏。游戏的主要内容大致分为游戏界面设计和游戏功能设计两大部分&#xff0c;其中游戏界面设计是以满足用户的视觉体验为主&#xff0c;游戏功能设计是在满足原有的贪吃蛇游戏基本功能的基础上添加一些其他的功能。本次的实现代码也较为简洁&…

Python游戏汇总:三十个pygame游戏代码

提示&#xff1a;爱学习哦&#xff0c;不要沉迷游戏&#xff0c;平时打发一下无聊时间最好啦 正文 欢迎阅读&#xff1a; 1.python21点小游戏。2.Python笨鸟先飞小游戏。3.python绘制满天星小游戏。4.吃豆豆小游戏项目。 5.python忍者奔跑小游戏。6.python迷宫小游戏。7.pyt…

猜拳游戏-python

今天在网上发现很多人都用python语言写出了一个猜拳游戏&#xff0c;看着效果还真不错。于是我在网上看了一个大佬写的&#xff0c;有了灵感&#xff0c;写出了下面的程序。 首先&#xff0c;大家知道&#xff0c;在python中&#xff0c;random函数可以做出随机数的程序&#…

python一行代码制作20款经典游戏

今天分享一个有趣的Python游戏库freegames&#xff0c;它包含20余款经典小游戏&#xff0c;像贪吃蛇、吃豆人、乒乓、数字华容道等等&#xff0c;依托于标准库Turtle。 我们不仅可以通过1行代码进行重温这些童年小游戏&#xff0c;还可以查看源码自己学习下游戏编写&#xff0…

迈入python游戏编程的大门,超详细的python环境搭建教程

0. 前言 Hello&#xff0c;大家好&#xff01;欢迎来到python教程入门学习公众号&#xff0c;我是带你们一起写游戏的猫姐&#xff01; 经常有朋友问梦想&#xff1a;梦想&#xff0c;我现在上小学&#xff08;初中&#xff09;&#xff0c;我想学习Python游戏编程&#xff0c…

Python游戏-实现键盘控制功能

要想实现键盘控制作用&#xff0c;就需要给游戏键盘监听事件 利用pygame模块的key.get_pressed()方法&#xff0c;来检测按键是否按下 key_press pygame.key.get_pressed()if not key_press[K_UP] and ball.rect.bottom < height:ball.movedown()elif key_press[K_UP] and …

Python实现迷宫游戏

项目&#xff1a;迷宫游戏 摘要1.引言1.1研究的背景及意义1.2研究的内容 2.系统结构2.1系统的结构2.2基本思路 3.实现代码3.1Maze类3.2Player类3.3Controller类3.4主函数 4.实验5.总结和展望参考文献 摘要 本次实验设计了一款迷宫小游戏&#xff0c;采用用Python开发技术实现。…

苹果iOS 16如何显示WiFi密码【操作教程】

在以往的iOS系统上包括iOS 15&#xff0c;iPhone用户是无法在手机上直接查看WiFi密码。对于经常忘记WiFi密码或者想向他人分享WiFi密码的用户来说非常不友好。 不过&#xff0c;最新发布的iOS 16更新包含了一系列的的细节改进&#xff0c;其中一项就是终于支持查看当前连接的Wi…

iphone显示不了wifi已连接服务器,苹果手机显示已经连接wifi但是不能上网如何解决...

iPhone每次推出新款,必然引起消费市场的订购热潮&#xff0c;人们对iphone手机的热捧,塑造了独特的消费风格群体&#xff0c;纵然iphone的使用者这么多&#xff0c;还是有很多人不清楚iPhone显示已经连接wifi但是不能上网的情况如何解决&#xff0c;下面就由学习啦小编跟大家分…

iphone开蓝牙wifi上网慢_苹果iphone 7手机连接wifi网速很慢怎么办?

最近小编听到很多使用iPhone7手机用户反映iphone 7连接wifi网速很慢&#xff0c;浏览网页都打不开&#xff0c;图片要加载半天&#xff0c;那遇到iphone 7连接wifi网速很慢怎么办?下面丢锋网给大家分享三个解决iphone7网速慢的方法&#xff0c;希望可以帮到大家!出现苹果手机w…

解决苹果手机连接了wifi,依旧无法更新系统的问题

解决苹果手机连接了wifi&#xff0c;依旧无法更新系统的问题 解决苹果手机连接了wifi&#xff0c;依旧无法更新系统的问题 起因&#xff1a;买了iWatch&#xff0c;要用手机给表更新系统&#xff0c;只能是手机连接wifi&#xff0c;但是手机连接了wifi&#xff0c;页面依旧提…