selenium+python 自动化测试,下载文件过程中出现对话框问题的处理

来源:互联网 发布:四象探测器 算法 编辑:程序博客网 时间:2024/05/29 16:11

近来,学习selenium ,下载文件过程中,浏览器会弹出对话框。遇到这种情况,笔者综合网上的教程,写出注意事项。

笔者的环境是:win 7 64位 +python 3.6 +Firefox 50.0.1 +selenium 3.0.2

第一步:需要下载某个文件,例如下载网站http://vdisk.weibo.com/s/qEoGTwdUACbMy 的文档。

第二步:修改Firefox的相关配置。

profile.set_preference('browser.download.folderList',2)    

#设置成0代表下载到浏览器默认下载路径;设置成2则可以保存到指定目录

profile.set_preference('browser.download.dir','F:\\Users')  

#保存到指定目录F盘Users文件夹。可以任意文件夹,但是记得分隔符是两个反斜杠

profile.set_preference('browser.download.manager.showWhenStarting',False)  

#不管是True还是False,都不显示开始,直接开始下载

profile.set_preference('browser.helperApps.neverAsk.saveToDisk','application/octet-stream ,application/zip,application/kswps,application/pdf')  

#不询问下载路径;后面的参数为要下载页面的Content-type的值

Content-type请参考网页:http://www.w3school.com.cn/media/media_mimeref.asp

第三步:自己启动Firefox浏览器,操作一次下载的过程。让浏览记住相关的动作。人工下载文件成功后,进入Firefox浏览器的选项->应用程序,多了一个WPS文字文档,

【操作】先选择其他,可以查看content-type值。再设置为保存文件。





第四步:新建python文件,输入以下代码。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

profile = webdriver.FirefoxProfile()  

profile.set_preference('browser.download.folderList',2)

profile.set_preference('browser.download.dir','F:\\Users')  

profile.set_preference('browser.download.manager.showWhenStarting',False)  
profile.set_preference('browser.helperApps.neverAsk.saveToDisk','application/octet-stream ,application/zip,application/kswps,application/pdf')  
   
driver =webdriver.Firefox(firefox_profile=profile)  
driver.get("http://vdisk.weibo.com/s/qEoGTwdUACbMy")
time.sleep(5)

driver.find_element_by_link_text("下载").click()

第五步,运行程序,在指定目录F:Users下,已经下载好文件。最关键的是要人工操作一遍下载过程。



以上经验参考了许多网友的博客,在此感谢他们(SD_JZZ博客、51testing的Jourly)



原创粉丝点击