Я тестирую с тем же кодом на 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']
так функция существует, но нет?
Любые предложения будут оценены