Понадобилось снимать скриншоты со страниц сайтов из консоли, т.е. без X-ов.
Не придумал пока ничего другого, как использование XVFB.
Установил xvfb:amd64 (2:1.20.4-1) в Debian 10.
Пробую снимать скриншоты страниц с помощью питоновского скрипта:
from selenium import webdriver
from xvfbwrapper import Xvfb
vdisplay = Xvfb()
vdisplay.start()
driver = webdriver.Chrome(r'/home/first/bin/chromedriver')
#driver = webdriver.Firefox(executable_path=r'/home/first/bin/geckodriver')
driver.get("https://2ip.ru")
driver.save_screenshot("check_ip.png")
driver.quit()
vdisplay.stop()
Если использовать Chromium, то скриншоты снимаются отлично, но если использовать Firefox 78.3.0esr, возникает ошибка:
~/bin$ python3 test.py
Traceback (most recent call last):
File "test.py", line 7, in <module>
driver = webdriver.Firefox(executable_path=r'/home/first/bin/geckodriver')
File "/home/first/.local/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
keep_alive=True)
File "/home/first/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/first/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/first/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/first/.local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
Да, и еще - использование xvfb это хороший способ снятия скриншотов страниц в консоли, или есть получше?