避免使用Serelinum在python3中下载弹出窗口下载pdf

时间:2019-07-12 12:50:59

标签: python-3.x selenium firefox selenium-webdriver download

对象:

自动执行以下过程。 1.打开特定的网页,在搜索框中填写信息,然后提交。 2.从搜索结果中单击第一个结果,然后下载PDF

已完成的工作:

要达到这个目的,我已经写了一个代码作为第一步。该代码可以正常工作,但是会弹出下载弹出窗口。直到我无法摆脱它的时候,我才能进一步使流程自动化。搜索了很多解决方案。但是没有一个奏效。

例如,This解决方案让我很难理解,我认为它更多地与Java和Python有关。我按照许多人的建议更改了狐狸的配置文件。 This剂量匹配虽然不完全相同。我没有尝试过,因为没有太大的区别。甚至this都在谈论改变狐狸的配置文件,但这是行不通的。

我的代码如下

import selenium.webdriver as webdriver
import selenium.webdriver.support.ui as ui
from time import sleep
import time
import wget
from wget import download
import os
#set firefox Profile
profile = webdriver.FirefoxProfile()

profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
#set variable driver to open firefox
driver = webdriver.Firefox(profile)
#set variable webpage to open the expected URL
webpage = r"https://documents.un.org/prod/ods.nsf/home.xsp"  # edit me
#set variable to enter in search box

searchterm = "A/HRC/41/23"  # edit me

#open the webpage with get command
driver.get(webpage)

#find the element "symbol", insert data and click submit.
symbolBox = driver.find_element_by_id("view:_id1:_id2:txtSymbol")
symbolBox.send_keys(searchterm)
submit = driver.find_element_by_id("view:_id1:_id2:btnRefine")
submit.click()
#list of search results open up and 1st occarance is clicked by coppying its id element
downloadPage = driver.find_element_by_id("view:_id1:_id2:cbMain:_id135:rptResults:0:linkURL")
downloadPage.click()
#change windiows. with sleep time
window_before = driver.window_handles[0]
window_after = driver.window_handles[1]

time.sleep(10)

driver.switch_to.window(window_after)

#the actual download of the pdf page
theDownload = driver.find_element_by_id("download")

theDownload.click()

请指导。

1 个答案:

答案 0 :(得分:0)

“选择”弹出窗口与其他窗口/选项卡不同,只是HTML弹出窗口。之所以可以这样说是因为,如果右键单击该对话框,将看到普通的上下文菜单。您只需要选择“语言”和“文件类型”,然后单击“下载所选内容”按钮即可。

相关问题