2017-06-03 51 views
1

我正在编写一个程序来通过python中的selenium webdriver自动化web交互。当我通过脚本点击“下载”按钮时,我在最后一步卡住了,屏幕上弹出一个窗口弹出窗口,并选择了默认选项“打开方式”。我希望我的程序首先点击“保存文件”选项,然后点击“确定”。我用下面这段代码来设置Firefox配置文件通过Python中的Selenium Webdriver下载文件

profile = webdriver.FirefoxProfile() 
profile.set_preference('browser.download.folderList', 2) 
profile.set_preference('browser.download.manager.showWhenStarting', False) 
profile.set_preference('browser.download.dir', os.getcwd()) 
profile.set_preference('browser.helperApps.neverAsk.saveToDisk',"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 

我的一个看法是,当窗口弹出是这样

enter image description here

与选项“像的文件自动执行此操作这从现在开始“是可点击的(通过复选框),那么上面的代码工作得很完美,但是当相同的选项不可点击时(如下图所示),那么以上用于设置配置文件的代码失败。 任何人都可以帮助我在这种情况下?

enter image description here

回答

1

这里是回答你的问题:

当你用新FirefoxProfile工作,使用set_preference方法来配置轮廓以这样一种方式,以便在点击SaveOk并没有关系在下载过程中不会中断。您可以设置配置如下:

profile = webdriver.FirefoxProfile() 
profile.set_preference("browser.download.dir",os.getcwd()); 
profile.set_preference("browser.download.folderList",2); 
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,text/anytext,text/comma-separated-values,text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/octet-stream"); 
profile.set_preference("browser.download.manager.showWhenStarting",False); 
profile.set_preference("browser.helperApps.neverAsk.openFile","application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,text/anytext,text/comma-separated-values,text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/octet-stream"); 
profile.set_preference("browser.helperApps.alwaysAsk.force", False); 
profile.set_preference("browser.download.manager.useWindow", False); 
profile.set_preference("browser.download.manager.focusWhenStarting", False); 
profile.set_preference("browser.download.manager.alertOnEXEOpen", False); 
profile.set_preference("browser.download.manager.showAlertOnComplete", False); 
profile.set_preference("browser.download.manager.closeWhenDone", True); 
profile.set_preference("pdfjs.disabled", True); 

让我知道如果这个答案您的问题。

+0

thanx回答,但不幸的是,同样的弹出式窗口(在第二张图片中)正在出现。我需要做一些改变,或者你有任何其他的解决方案 – user8023364

+0

给我一分钟请,将更新我的代码 – DebanjanB

+0

是的,一定要把你的tym。 – user8023364

相关问题