«driver.quit ()» не работает, когда я запускаю задачу автоматической загрузки в селене, но если в браузере нет задачи загрузки, команда quit по-прежнему работает.
Я бы это сделалбудь то выйдите из браузера после завершения загрузки, чтобы перезапустить браузер и затем запустить цикл загрузки пакетов файлов.
Я использую последнюю версию geckodriver v0.25.0 (mac-version) и Firefox <69.0.1>
Вот мой код:
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
profile.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf")
profile.set_preference("pdfjs.disabled", True)
profile.set_preference("browser.download.manager.closeWhenDone", True)
driver = webdriver.Firefox(firefox_profile=profile)
driver.implicitly_wait(10)
driver.get("https://static.mozilla.com/foundation/documents/mf-irs-501c3-application-form-872-c.pdf")
driver.quit()
Я получил сообщение об ошибке вроде:
TimeoutException Traceback (most recent call last)
<ipython-input-80-c56ffa95cb91> in <module>
1 driver = webdriver.Firefox(firefox_profile=profile)
----> 2
driver.get("https://static.mozilla.com/foundation/documents/mf-irs-501c3-application-form-872-c.pdf")
3 driver.quit()
/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in get(self, url)
331 Loads a web page in the current browser session.
332 """
--> 333 self.execute(Command.GET, {'url': url})
334
335 @property
/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
319 response = self.command_executor.execute(driver_command, params)
320 if response:
--> 321 self.error_handler.check_response(response)
322 response['value'] = self._unwrap_value(
323 response.get('value', None))
/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
240 alert_text = value['alert'].get('text')
241 raise exception_class(message, screen, stacktrace, alert_text)
--> 242 raise exception_class(message, screen, stacktrace)
243
244 def _value_or_default(self, obj, key, default):
TimeoutException: Message: Timeout loading page after 300000ms