获取chrome性能并跟踪日志

ale*_*cxe 18 python selenium google-chrome selenium-chromedriver selenium-webdriver

我正在尝试使用WebDriver谷歌测试自动化会议谈话和ChromeDriver "性能日志"文档页面来遵循网络性能测试中提出的想法,以获取我想要提交到网页测试以便稍后进行性能分析的跟踪数据.

如何使用python selenium绑定检索性能日志?


我试图log_types在驱动程序实例中打印出来

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://stackoverflow.com')

print driver.log_types

driver.close()
Run Code Online (Sandbox Code Playgroud)

但只有

[u'browser', u'driver']
Run Code Online (Sandbox Code Playgroud)

而且我没有看到相关的命令行开关.

ale*_*cxe 30

默认情况下禁用性能日志.

要启用它,请使用DesiredCapabilities和配置loggingPrefs:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.CHROME
 #as per latest docs
caps['goog:loggingPrefs'] = {'performance': 'ALL'}
driver = webdriver.Chrome(desired_capabilities=caps)

driver.get('https://stackoverflow.com')

for entry in driver.get_log('performance'):
    print(entry)

driver.quit()
Run Code Online (Sandbox Code Playgroud)

这导致在控制台上打印出一堆跟踪日志条目:

{u'timestamp': 1419487459178, u'message': u'{"message":{"method":"Network.responseReceived","params":{"frameId":"2105.1","loaderId":"2105.2","requestId":"2105.1","response":{"connectionId":0,"connectionReused":false,"encodedDataLength":-1,"fromDiskCache":false,"fromServiceWorker":false,"headers":{"Access-Control-Allow-Origin":"*","Content-Type":"text/plain;charset=US-ASCII"},"mimeType":"text/plain","status":200,"statusText":"OK","url":"data:,"},"timestamp":1419487458.92934,"type":"Document"}},"webview":"2C66E956-A48B-456B-8A4E-1022F699AA92"}', u'level': u'INFO'}
{u'timestamp': 1419487459178, u'message': u'{"message":{"method":"Network.loadingFinished","params":{"encodedDataLength":0,"requestId":"2105.1","timestamp":1419487458.92936}},"webview":"2C66E956-A48B-456B-8A4E-1022F699AA92"}', u'level': u'INFO'}
{u'timestamp': 1419487459178, u'message': u'{"message":{"method":"Page.frameNavigated","params":{"frame":{"id":"2105.1","loaderId":"2105.2","mimeType":"text/plain","securityOrigin":"://","url":"data:,"}}},"webview":"2C66E956-A48B-456B-8A4E-1022F699AA92"}', u'level': u'INFO'}
...
Run Code Online (Sandbox Code Playgroud)

  • 对于较新版本的Chrome,您必须使用`caps [“ goog:loggingPrefs”] = {“ performance”:“ ALL”}`。 (6认同)
  • 我知道这个答案太旧了,但是您知道是否有办法只获取“网络”事件(即当您转到 Chrome 开发者工具上的“网络”选项卡时会看到的内容)。我可以从日志中解析出我需要的内容,但我认为有一种更有效的方法,而且我在找出文档时遇到了一些麻烦。谢谢! (2认同)