Я хочу сделать скриншот полной страницы сайта. Ниже приведены условия веб-сайта
- Требуется проверка подлинности с помощью знака в форме
- Веб-сайт, который я хочу сделать на снимке экрана, отображается с помощью Javascript (динамическое отображение c), а не с c рендеринг (внутри тега
body
есть только теги script
)
Я попробовал некоторые решения, которые смог найти, но ни одно из них не сработало так, как мне хотелось. Ниже приведены некоторые попытки, которые я пытался
- Ссылка Эта попытка потребовала использования безголового chrome, из-за чего я не могу заполнить знак в форме
- Когда я пытаюсь чтобы удалить параметры без заголовка, я получаю эту ошибку
"message":"Cannot take screenshot with 0 height."
Я полагаю, это потому, что содержимое отображается Javascript. Обратите внимание, что я уже даю время для рендеринга с помощью time.sleep(5)
- . Когда я пытаюсь выбрать другой элемент, результат меняется. Некоторые выдают то же сообщение об ошибке, что и выше, некоторые дают мне снимок экрана, но не полную страницу, только видимую часть (тот же результат, что и при использовании
browser.save_screenshot()
). Ниже приведен код, который я пробовал.
def S(X): return browser.execute_script(
'return document.querySelector("#main-layout-content").scroll'+X
)
browser = webdriver.Chrome()
browser.get('some link go here')
browser.set_window_size(S('Width') + 100, S('Height') + 1000)
#The print statement below work
print(S('Height'))
browser.find_element_by_id('main-layout-content').screenshot('web_screenshot.png')
Есть ли способ добиться того, что мне нужно?