Сделайте скриншот полной веб-страницы с Selenium Python с драйвером Chrome - PullRequest
1 голос
/ 26 апреля 2020

Я хочу сделать скриншот полной страницы сайта. Ниже приведены условия веб-сайта

  1. Требуется проверка подлинности с помощью знака в форме
  2. Веб-сайт, который я хочу сделать на снимке экрана, отображается с помощью Javascript (динамическое отображение c), а не с c рендеринг (внутри тега body есть только теги script)

Я попробовал некоторые решения, которые смог найти, но ни одно из них не сработало так, как мне хотелось. Ниже приведены некоторые попытки, которые я пытался

  1. Ссылка Эта попытка потребовала использования безголового chrome, из-за чего я не могу заполнить знак в форме
  2. Когда я пытаюсь чтобы удалить параметры без заголовка, я получаю эту ошибку "message":"Cannot take screenshot with 0 height." Я полагаю, это потому, что содержимое отображается Javascript. Обратите внимание, что я уже даю время для рендеринга с помощью time.sleep(5)
  3. . Когда я пытаюсь выбрать другой элемент, результат меняется. Некоторые выдают то же сообщение об ошибке, что и выше, некоторые дают мне снимок экрана, но не полную страницу, только видимую часть (тот же результат, что и при использовании 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')

Есть ли способ добиться того, что мне нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...