Ошибка при вызове screenshot_as_base64 для лямбды, пока работает MacOS - PullRequest
0 голосов
/ 11 января 2019

Я тестирую с тем же кодом на MacOS, а затем внедряю на AWS lambda. Все работает, кроме одной функции, получающей скриншот.

Для AWS лямбда я использую настройку, описанную в https://github.com/21Buttons/pychromeless

С

Драйвер Chrome https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zi

безголовый хром https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip

def get_image_fullpage_screenshot(browser):
    logger.info("get_image_fullpage_screenshot")
    required_width = browser.execute_script('return document.body.parentNode.scrollWidth')
    required_height = browser.execute_script('return document.body.parentNode.scrollHeight')
    browser.set_window_size(required_width, required_height)
    logger.info("Browser required_width %d , required_height %d" % (required_width, required_height))
    # driver.save_screenshot(path)  # has scrollbar
    body_element = browser.find_element_by_tag_name('body')
    logging.info("Got body")
    logging.info(dir(body_element))
    bs4 = None
    try:
        bs4 = body_element.screenshot_as_base64
        logging.info("Worked body_element.screenshot")
    except Exception as e:
        logging.info("Can't body_element.screenshot_as_base64 %s " %str(e))
    return bs4

Я получаю ошибку

Can't body_element.screenshot_as_base64 Message: unknown command: session/1423106400075214591ff2e5def5f55a/element/0.5505971093767275-1/screenshot

Однако, dir на объекте дает это:

    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_execute', '_id', '_parent', '_upload', '_w3c', 'clear', 'click', 'find_element', 'find_element_by_class_name', 'find_element_by_css_selector', 'find_element_by_id', 'find_element_by_link_text', 'find_element_by_name', 'find_element_by_partial_link_text', 'find_element_by_tag_name', 'find_element_by_xpath', 'find_elements', 'find_elements_by_class_name', 'find_elements_by_css_selector', 'find_elements_by_id', 'find_elements_by_link_text', 'find_elements_by_name', 'find_elements_by_partial_link_text', 'find_elements_by_tag_name', 'find_elements_by_xpath', 'get_attribute', 'get_property', 'id', 'is_displayed', 'is_enabled', 'is_selected', 'location', 'location_once_scrolled_into_view', 'parent', 'rect', 'screenshot', 'screenshot_as_base64', 'screenshot_as_png', 'send_keys', 'size', 'submit', 'tag_name', 'text', 'value_of_css_property']

так функция существует, но нет?

Любые предложения будут оценены

1 Ответ

0 голосов
/ 11 января 2019

Как оказалось, лямбде не хватает памяти, конечно, ошибки не было. После увеличения памяти до 1024 МБ все работает как положено.

здравомыслие восстановлено.

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