提问人:Sandy 提问时间:8/12/2022 更新时间:10/18/2022 访问量:470
Selenium Firefox 在下载文件后卡住
Selenium Firefox stuck after downloading a file
问:
我正在使用 python selenium(最新版本)和 geckodriver 0.31.0 和 Firefox 103 登录网站并下载文件,但下载文件后,浏览器卡住了,从未调用过。browser.quit()
这是相关代码:
s = Service(DRIVER_PATH)
firefox_options = Options()
firefox_options.set_preference("browser.download.folderList", 2) # to not use the default directory for downloading the file
firefox_options.set_preference("browser.download.manager.showWhenStarting", False) # turns off the showing of download progress
firefox_options.set_preference("browser.download.dir", "/home/<myuser>/")
firefox_options.set_preference("browser.download.directory_upgrade", True)
firefox_options.set_preference("browser.download.prompt_for_download", False)
firefox_options.set_preference("browser.download.manager.showWhenStarting", False)
firefox_options.set_preference("browser.download.manager.alertOnEXEOpen", False)
firefox_options.set_preference("browser.download.manager.focusWhenStarting", False)
firefox_options.set_preference("browser.helperApps.alwaysAsk.force", False)
firefox_options.set_preference("browser.download.manager.alertOnEXEOpen", False)
firefox_options.set_preference("browser.download.manager.closeWhenDone", True)
firefox_options.set_preference("browser.download.manager.showAlertOnComplete", False)
firefox_options.set_preference("browser.download.manager.useWindow", False)
firefox_options.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False)
firefox_options.set_preference("pdfjs.disabled", True)
firefox_options.add_argument("--disable-infobars")
firefox_options.add_argument("--disable-extensions")
firefox_options.set_preference("network.proxy.socks_remote_dns", True)
browser = webdriver.Firefox(service=s, options=firefox_options)
browser.get(URL)
browser.find_element(By.NAME, "login").send_keys(USER)
browser.find_element(By.NAME, "password").send_keys(PASSWORD)
browser.find_element(By.CLASS_NAME, CLASS).click()
# download file
browser.get(URL + "feed.rss")
time.sleep(3)
browser.quit()
我知道我可以通过传递 selenium cookie 来使用 python 下载文件,但我需要使用 Selenium 下载文件。requests
答:
2赞
Jonas
10/18/2022
#1
Firefox 102.3 显示了带有此配置文件的下载窗口(至少在 java 中)。我需要添加以下配置行:
“browser.download.alwaysOpenPanel” = 假
我不确定这是否对 python 有帮助,或者这是否是问题所在。在 selenium-java 中,如果有一个弹出窗口(“显示所有下载”),我会用某些代码来失去焦点。
评论
0赞
Pierre
11/3/2022
我在 Python 上遇到了完全相同的问题,但这并不能解决我的问题 (Firefox 106.0.3)。
评论