Я пытаюсь написать AWS лямбда-функцию, которая будет делать снимок экрана с URL, переданным в python. Однако я не могу найти способ напрямую загрузить эти изображения в локальную систему или загрузить их в s3.
Я использую селен с безголовым chrome и после создания снимка экрана с помощью драйвера. save_screenshot ("test.png") (который работает локально и сохраняет изображения в месте расположения кода), лямбда-функция выдает ошибку.
Пожалуйста, смотрите мой код ниже!
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
def lambda_handler(event, context):
# TODO implement
print("Starting google.com")
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--window-size=1280x1696')
chrome_options.add_argument('--hide-scrollbars')
chrome_options.add_argument('--enable-logging')
chrome_options.add_argument('--log-level=0')
chrome_options.add_argument('--v=99')
chrome_options.add_argument('--single-process')
chrome_options.add_argument('--data-path=/tmp/data-path')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--homedir=/tmp')
chrome_options.add_argument('--disk-cache-dir=/tmp/cache-dir')
chrome_options.add_argument('user-agent=Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36')
chrome_options.binary_location = os.getcwd() + "/bin/headless-chromium"
print("reaching here")
driver = webdriver.Chrome(chrome_options=chrome_options)
page_data = ""
if 'url' in event.keys():
driver.get(event['url'])
page_data = driver.page_source # working fine till here
print(page_data)
driver.save_screenshot("screenshot.png") #error here
driver.close()
return page_data