日志记录

默认情况下,ChromeDriver 只会将警告/错误记录到 stderr 中。调试问题时,启用更详细的日志记录会很有帮助。

要启用详细日志记录,只需将 --verbose 传递给 chromedriver 服务器即可。您还可以传递 --log-path 以将日志写入文件,而不是 stderr。如果您不是直接自行启动 chromedriver 服务器,则需要通过 WebDriver 客户端库传递开关。遗憾的是,有些客户端还没有用于执行此操作的选项。

--log-path 传递给 Chrome 启动命令时,Chrome Linux 和 Mac 上的 stderr 将保存在日志文件中。不过,Windows 上的 stderr 不会被保存,因为 Chrome 是 GUI 应用,且操作系统不允许它从 ChromeDriver 继承 stderr 句柄。如需在 Windows、Linux 和 Mac 上保存 stderr,您可以使用 CHROME_LOG_FILE 环境变量,这样该文件将仅包含来自 Chrome 的日志。如果您在 ChromeOptions 中指定 logPath,ChromeDriver 会将其值复制到 CHROME_LOG_FILE

Android 上都不会捕获 stderr 和 stdout。在所有平台上,stdout 都会进入控制台窗口。

C#

var service = ChromeDriverService.CreateDefaultService();

service.LogPath = "D:\\chromedriver.log";

service.EnableVerboseLogging = true;

driver = new ChromeDriver(service);

这两个函数都有重载版本,请参阅 API 文档。

Java

System.setProperty("webdriver.chrome.logfile", "D:\\chromedriver.log");

System.setProperty("webdriver.chrome.verboseLogging", "true");

Python

driver = webdriver.Chrome(executable_path="D:\\chromedriver.exe", service_args=["--verbose", "--log-path=D:\\qc1.log"])

所有语言

使用标志在命令提示符/终端中启动 chromedriver,并提供详细日志记录功能:

--verbose --log-path=chromedriver.log

使用指向 http://localhost:9515 的 RemoteWebDriver 运行测试。