Скачать PDF в Chrome с Selenium Python - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь скачать PDF на Chrome с селеном и Python. Один из способов сделать это - включить настройку в Chrome.

Setting window image

Я пытаюсь сделать это в начале моего кода с селеном

driver.get('chrome://settings/content/pdfDocuments')
time.sleep(5)
driver.find_element_by_id('bar').click()

Но всегда получала ошибку. То же самое, если я пытаюсь взаимодействовать со всем в этом окне

Traceback (most recent call last):
File "test_selenium.py", line 37, in <module>
driver.find_element_by_id('knob').click()
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"bar"}
(Session info: chrome=70.0.3538.77)
(Driver info: chromedriver=2.40,platform=Linux 4.18.10-100.fc27.x86_64 x86_64)

Спасибо за помощь

1 Ответ

0 голосов
/ 08 ноября 2018

Установить chrome-printtopdf из npm, используя приведенную ниже команду.

pip install chrome-printtopdf

Используйте приведенный ниже код для загрузки pdf файла.

from chrome_printtopdf import get_pdf_with_chrome_sync

pdf_file = get_pdf_with_chrome_sync('http://example.org',
chrome_binary='/path/to/chrome-bin')

with open('example.org.pdf', 'wb') as f:
f.write(pdf_file.read())

Использование командной строки упоминается ниже

python -m chrome_printtopdf /path/to/chrome-bin http://example.org/ out.pdf
...