Как установить размер окна, чтобы получить полный снимок экрана с селеном и chrome безголовым веб-драйвером в python? - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь получить снимок экрана на всю страницу через chrome безголовый режим и селен в python. Это хорошо работает, когда я устанавливаю размер окна, как показано ниже, перед browser.get (url)

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument("window-size={},{}".format(1024, 1920))
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get(url)

time.sleep(tt)
pic_path = os.path.join(path, name)

if browser.save_screenshot(pic_path):
    print('Done!')
else:
    print('Failed!')
print(pic_path)

browser.quit()

Однако я не знаю заранее точный размер окна каждой веб-страницы. Поэтому мне нужно получить размер окна после browser.get (url) следующим образом:

chrome_options = Options()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get(url)

width = browser.execute_script("return document.documentElement.scrollWidth")
height = browser.execute_script("return document.documentElement.scrollHeight")
chrome_options.add_argument("window-size={},{}".format(width, height))
time.sleep(tt)
pic_path = os.path.join(path, name)

if browser.save_screenshot(pic_path):
    print('Done!')
else:
    print('Failed!')
print(pic_path)

browser.quit()

Однако кажется, что «add_argument» не работает после browser_get (url). Я попытался использовать

browser.set_window_size(width, height)

вместо

chrome_options.add_argument("window-size={},{}".format(width, height))

, но возникла ошибка, например

selenium.common.exceptions.WebDriverException: Сообщение: неизвестная ошибка: не удается получить расширение автоматизации из-за неизвестной ошибки: страница не может быть найдена: chrome -расширение: //aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html

чего я не понимаю и не могу найти решение.

Следовательно, теперь я могу получить снимок экрана на всю страницу, если я знаю ширину и высоту до получения URL-адреса, но я не знаю ширину и высоту, пока не получу URL-адрес, что сводит меня с ума.

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