无论是Chrome
还是PhantomJS
的selenium驱动程序都可以记录浏览器端发生的所有事情。在初始化驱动程序时,通过指定服务日志路径,您可以控制日志的写入位置。例如,对于Python中的Chrome:
from selenium import webdriver
driver = webdriver.Chrome(service_log_path="/tmp/log")
driver.get("http://www.google.com")
driver.close()
执行代码后,
/tmp/log
文件将包含服务日志,这对于调试非常有帮助。[0.985][INFO]: Launching chrome: ...
[2.620][INFO]: RESPONSE InitSession {
"acceptSslCerts": true,
"applicationCacheEnabled": false,
"browserConnectionEnabled": false,
"browserName": "chrome",
"chrome": {
"userDataDir": "/var/folders/yy/ppdg927x4zv8b0rbzg1f_jzh0000gn/T/.org.chromium.Chromium.ibsof9"
},
"cssSelectorsEnabled": true,
"databaseEnabled": false,
"handlesAlerts": true,
"javascriptEnabled": true,
"locationContextEnabled": true,
"nativeEvents": true,
"platform": "Mac OS X",
"rotatable": false,
"takesHeapSnapshot": true,
"takesScreenshot": true,
"version": "37.0.2062.120",
"webStorageEnabled": true
}
[2.677][INFO]: Waiting for pending navigations...
[2.696][INFO]: Done waiting for pending navigations
[3.290][INFO]: Waiting for pending navigations...
[4.338][INFO]: Done waiting for pending navigations
[4.338][INFO]: RESPONSE Navigate
[4.339][INFO]: COMMAND CloseWindow {
}
[4.451][INFO]: RESPONSE CloseWindow
有没有一种方法可以使用
Firefox
Web驱动程序获取相同的信息?从源代码中看到,
Chrome
和PhantomJS
都通过subprocess
启动新服务并将--log-path
参数传递给它。这些服务负责日志记录。至于Firefox
驱动程序,它的实现方式非常不同,并且基于FirefoxBinary
类。提供的示例和链接与Python相关,但问题基本上是通用的,与语言无关。希望能得到任何指导。