セレン4とクロームのドライバは、フルページのスクリーンショットを取る


私は完全なページのスクリーンショットを取得しようとしてセレン4と一緒に遊んでいくつかの時間を費やした、これは私が見つけたものです.
  • 私たちはクロムドライバ
  • のdevtoolsプロトコルを使用します
  • これはドライバによって行われます.ExecuteCount CDPENER CMD (コマンド、パラメータ)
  • コマンドはPage.captureScreenshotです
  • のパラメータは、here
  • トリッキーパームはclipです
  • # I am assuming we already have a driver object.
    
    # We need the dimensions of the content
    page_rect = driver.execute_cdp_cmd('Page.getLayoutMetrics', {})
    
    # parameters needed for ful page screenshot
    # note we are setting the width and height of the viewport to screenshot, same as the site's content size
    screenshot_config = {'captureBeyondViewport': True,
                                 'fromSurface': True,
                                 'clip': {'width': page_rect['contentSize']['width'],
                                          'height': page_rect['contentSize']['height'],
                                          'x': 0,
                                          'y': 0,
                                          'scale': 1},
                                 }
    # Dictionary with 1 key: data
    base_64_png = driver.execute_cdp_cmd('Page.captureScreenshot', screenshot_config)
    
    # Write img to file
    with open("imageToSave.png", "wb") as fh:
        fh.write(base64.urlsafe_b64decode(base_64_png['data'))
    
    

    なぜ、私はこれを書いていますか?
    DevToolsプロトコルに関連した良いドキュメンテーションはありません、そして、セレンへのその集積はまだ私がこれを書いたとき、セレン4の作品にあります.
    私は、これがどんな失われた魂でも助けることを望みます.