browser.save_screenshot не работает должным образом - PullRequest
1 голос
/ 12 марта 2019

У меня есть файл со ссылками, и мне нужно сделать скриншоты страниц. Но мой код не хочет сохранять изображения. Код работает без ошибок, но выходная папка пуста.

from selenium import webdriver
browser = webdriver.Chrome(r'C:\webdrivers\chromedriver.exe')
browser.set_page_load_timeout(100)    
browser.maximize_window()

file = open('links.txt', 'r', encoding="ISO-8859-1")
urls = file.readlines()
for url in urls:
    url = url.strip ('\n')
    try:
        browser.get(url)
    except:
        print(url + ' took too long')
   else:
       # where images saved
       browser.save_screenshot(r'C:\Users\krupn\Desktop\CreateWord\screenshots' + url + '.png')

browser.quit()

1 Ответ

0 голосов
/ 12 марта 2019

Убедитесь, что python не работает с проблемой разрешений для записи на рабочий стол (запустите от имени администратора или сделайте еще одну попытку, кроме как при попытке записи на скриншот, и распечатайте все исключения, которые могут возникнуть при записи).

Также вы можете писать каталог выше того, что вы думаете, и создавать файл с именем C: \ Users \ krupn \ Desktop \ CreateWord \ screenshots [url] .png (где [url] - ваша переменная url).

Вы можете присоединиться к своим путям, используя os.join следующим образом:

import os

os.path.join(r'C:\Users\krupn\Desktop\CreateWord\screenshots\', "{}.png".format(url))

Было бы также целесообразно очистить строку URL-адреса перед ее использованием в качестве части пути, если есть косые черты или недопустимые символыэто может объяснить, почему сохранение скриншота не работает.

Спасибо пользователю Кори Голдбергу за то, что он указал, что в примере os.path.join не было необходимого r для добавления строки, чтобы обратные слэши не работалидействовать как escape-символы

...