在python或node.js中使用selenium,是否有方法访问开发工具的性能选项卡?

c0vxltue  于 2023-04-21  发布在  Python
关注(0)|答案(1)|浏览(135)

在python或node.js中使用selenium。有没有办法访问devtools的performance选项卡并运行load profile,然后输出结果?我看了here,但没有得到我想要的。有什么想法吗?或者这是不可能的?
如果我不清楚。请看我下面的截图。

bxpogfeg

bxpogfeg1#

您可以使用下面的代码来提取性能指标

from selenium.webdriver.common.by import By
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    # Navigate to the page you want to test
    driver.get('https://url.com')
    driver.implicitly_wait(40)
    
    # Start profiling
    driver.execute_cdp_cmd('Performance.enable', {})
    driver.execute_script("console.profile()")
    
    # Do some actions on the page
    driver.find_element(By.XPATH, " ").click()
    driver.find_element(By.XPATH, " ").click()
    
    # Stop profiling now
    driver.execute_script("console.profileEnd()")
    
    # Get the performance metrics
    metrics = driver.execute_cdp_cmd('Performance.getMetrics', {})
    
    # Parse the bottom-up call tree
    for metric in metrics['metrics']:
        print(metric)
    
    
    driver.quit()

这将像这样打印所有指标

{'name': 'Timestamp', 'value': 114384.143727}
{'name': 'AudioHandlers', 'value': 0}
{'name': 'Documents', 'value': 4}
{'name': 'Frames', 'value': 6}
{'name': 'JSEventListeners', 'value': 135}
{'name': 'LayoutObjects', 'value': 78}
{'name': 'MediaKeySessions', 'value': 0}
{'name': 'MediaKeys', 'value': 0}
{'name': 'Nodes', 'value': 325}
{'name': 'Resources', 'value': 18}
{'name': 'ContextLifecycleStateObservers', 'value': 5}
{'name': 'V8PerContextDatas', 'value': 1}
{'name': 'WorkerGlobalScopes', 'value': 0}
{'name': 'UACSSResources', 'value': 0}
{'name': 'RTCPeerConnections', 'value': 0}
{'name': 'ResourceFetchers', 'value': 4}
{'name': 'AdSubframes', 'value': 0}
{'name': 'DetachedScriptStates', 'value': 0}
{'name': 'ArrayBufferContents', 'value': 2}
{'name': 'LayoutCount', 'value': 6}
{'name': 'RecalcStyleCount', 'value': 6}
{'name': 'LayoutDuration', 'value': 0.000498}
{'name': 'RecalcStyleDuration', 'value': 0.001446}
{'name': 'DevToolsCommandDuration', 'value': 0.030814}
{'name': 'ScriptDuration', 'value': 0.000324}
{'name': 'V8CompileDuration', 'value': 0}
{'name': 'TaskDuration', 'value': 0.039132}
{'name': 'TaskOtherDuration', 'value': 0.00605}
{'name': 'ThreadTime', 'value': 0.040254}
{'name': 'ProcessTime', 'value': 0.625531}
{'name': 'JSHeapUsedSize', 'value': 3673040}
{'name': 'JSHeapTotalSize', 'value': 5705728}
{'name': 'FirstMeaningfulPaint', 'value': 114380.25861}
{'name': 'DomContentLoaded', 'value': 114380.14406}
{'name': 'NavigationStart', 'value': 114379.172336}

相关问题