У меня есть код Python 3.6 в AWS Lambda, который открывает веб-сайт с использованием селена и драйвера Chrome.Он открывает страницу, делает снимок экрана и возвращает строку Base64 на мой локальный ПК, который затем сохраняет ее в виде файла .PNG.Можно ли вернуть это изображение без остановки лямбда-кода.Я пытаюсь просмотреть все веб-страницы, по которым он переходит по одной за раз.
lambda_function.py сейчас выглядит так.
def lambda_handler(event, context):
# TODO implement
print("Starting Chrome")
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('--user-data-dir=/tmp/user-data')
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"
driver = webdriver.Chrome(chrome_options=chrome_options)
png = ""
if 'url' in event.keys():
driver.get(event['url'])
# take first screenshot here
# png = driver.get_screenshot_as_base64()
try:
send = driver.find_element_by_id("action-button")
send.click()
time.sleep(4)
# take second screenshot here
# png = driver.get_screenshot_as_base64()
except NoSuchElementException:
return "action-button not found"
time.sleep(15)
png = driver.get_screenshot_as_base64()
driver.close()
return png
Я бы хотел бытьвозможность просматривать каждую страницу при загрузке во время выполнения.