Selenium DevTools Capture节点截图

时间:2018-04-26 10:35:48

标签: python selenium devtools

如何使用Python使用DevTools Capture? 这里有一个代码,但我不知道如何将它用于节点截图。

def chrome_takeFullScreenshot(driver):
def send(cmd, params):
    resource = "/session/%s/chromium/send_command_and_get_result" % driver.session_id
    url = driver.command_executor._url + resource
    body = json.dumps({'cmd': cmd, 'params': params})
    response = driver.command_executor._request('POST', url, body)
    return response.get('value')

def evaluate(script):
    response = send('Runtime.evaluate', {'returnByValue': True, 'expression': script})
    return response['result']['value']

metrics = evaluate( \
    "({" + \
    "width: Math.max(window.innerWidth, document.body.scrollWidth, document.documentElement.scrollWidth)|0," + \
    "height: Math.max(innerHeight, document.body.scrollHeight, document.documentElement.scrollHeight)|0," + \
    "deviceScaleFactor: window.devicePixelRatio || 1," + \
    "mobile: typeof window.orientation !== 'undefined'" + \
    "})")
print metrics
print send('Emulation.setDeviceMetricsOverride', metrics)
screenshot = send('Page.captureScreenshot', {'format': 'png', 'fromSurface': True})
send('Emulation.clearDeviceMetricsOverride', {})
return base64.b64decode(screenshot['data'])

0 个答案:

没有答案