注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

使用 Chrome™ DevTools 进行调试

在本指南中,您将学习如何使用 Chrome™ 浏览器中的开发工具(DevTools)来帮助识别意外行为或收集必要的浏览器日志以提供给 Palantir 支持。

调试模糊错误的最重要工具之一是 Chrome™ DevTools ↗。它为调试问题提供了丰富的信息,并允许您查看网页背后发生的一些内部情况。可以将其视为打开汽车的引擎盖——您可以查看内部并了解实际发生的情况。


使用 Chrome™ DevTools

您可以通过以下步骤访问控制台日志:

  1. 右键单击您打开的网页上的某个元素。
  2. 选择 Inspect。这将在网页侧边打开一个屏幕。
  3. 在顶部,导航到 Console 标签,这是大多数错误会出现的地方。
  4. 失败请求将显示为红色。找到页面上出错相关的红色请求,或支持团队指示您提供的特定请求。您可能需要在执行相关操作时打开网络窗口,以便错误消息出现。
  5. 选择左侧的箭头以展开请求。通常这会包含额外的有用信息,如错误消息和 errorInstanceID。

带有红色突出显示标签选择的 DevTools 截图

目前重要的部分是顶部的工具栏。对于大多数故障排除,ConsoleNetwork 标签将包含相关错误信息,并对支持团队最有帮助。然而,Elements 标签也可能在识别问题时有用,因此我们也将覆盖它。

控制台标签

如下面的图片所示,可通过工具栏中的 Console 标签访问 Chrome™ 控制台,主要有两个用途。首先是供网页应用程序本身使用。网页应用程序可以在控制台中打印任何它想要的东西——调试信息、错误日志、信息消息等等。

第二个用途是用户可以运行代码片段并检查结果。然而,这种用法超出了本指南的范围。

当您遇到错误时,通常打开控制台并向上滚动历史记录,特别是查找错误(通常以红色突出显示)是很有用的。这些错误将有助于报告,并通常包含有关出错原因的更多信息。

例如,当我们加载 使用 DevTools 进行调试的页面时,我们应该在控制台日志中找到以下代码段:

显示 DevTools 控制台错误的截图

您可能会看到很多信息行,即上面的简单白色行,以及以红色显示的错误。值得注意的错误显示了一个 URL 的 GET 请求,后跟数字 404,即 HTTP 错误代码 "文件未找到"。如果我们查看控制台以获取有关错误的更多信息,这个错误将非常有用,包括文件名。在此示例中,引用了一个 you-found-me.png,该文件未找到。

在许多情况下,展开错误以获取其他信息也是有用的。您可以通过选择错误开头的小三角形来执行此操作:

DevTools 控制台详细信息截图

要访问特定页面上的控制台日志:

  1. 右键选择您打开的页面上的一个元素,然后选择 Inspect。这将在网页侧边打开一个屏幕。
  2. 导航到页面顶部附近的 Console 标签。
  3. 失败请求将显示为红色。找到页面上出错相关的红色请求。
  4. 选择左侧的箭头以展开请求。通常这会包含更多信息,如错误消息和 errorInstanceID。
  5. 如果您没有看到任何相关错误,请尝试在控制台日志打开的情况下重新触发导致失败的行为。

此操作可以为您的支持团队提供更多故障排除信息。您可以通过右键选择错误信息并选择 Save as 来获取这些日志。您可能需要将保存的文件从 .log 文件重命名为 TXT 文件以上传到平台。

有关更多信息,请参见 Chrome™ DevTools 控制台概述文档 ↗.

网络标签

当您在 Palantir 应用程序中选择一个按钮时,您的浏览器会向服务器发送一个请求,服务器处理后再发送一个响应。单个网页可能会发出许多请求,这些请求不会导致页面重新加载,但可能会更新您看到的数据或向服务器发送新数据。Network 标签让您可以检查您的浏览器发出的所有请求,以及检查收到的响应。

DevTools 网络标签

要访问特定页面上的网络日志:

  1. 右键选择您打开的页面上的一个元素,然后选择 Inspect。这将在网页侧边打开一个屏幕。
  2. 导航到页面顶部附近的 Network 标签。
  3. 失败请求将显示为红色。找到页面上出错相关的红色请求。
  4. 选择左侧的箭头以展开请求。通常这会包含更多信息,如错误消息和 errorInstanceID。
  5. 如果您没有看到任何相关错误,请尝试在控制台日志打开的情况下重新触发导致失败的行为。

注意 Status 列。这包含了请求在响应中收到的 HTTP 状态代码,如本文件前面所讨论的。注意有一个 404 错误,以及许多以 2 开头的请求,这意味着请求成功。

以下是使用此视图获取更多错误信息的一些最佳实践。首先,查看侧边栏左上角的两个按钮:

DevTools 网络激活按钮

红色的第一个图标表示网络标签当前正在记录。这意味着当发出新请求时,它将记录在下面的视图中。如果不可用,您应该切换记录。同样,如果您发现请求日志填充速度超过您可以检查的速度,您可以再次选择它以关闭记录。

第二个符号(带线圈的圆圈)可让您清除日志。这在您执行最小步骤以重现之前非常有用。此操作清除了所有当前记录请求的日志,以便您可以看到仅仅是那些新进来的请求。

使用此日志的最佳方式是:

  1. 执行重现错误的最小步骤,但直到错误发生之前。
  2. 清除日志。
  3. 执行导致错误的最后一步。
  4. 检查新请求,特别是查找任何 HTTP 错误代码。您可能希望将请求的截图附加到您的报告中。

如果您发现某个特定请求值得关注,可能是因为它有相关的 HTTP 错误代码,以下信息将非常有用以包含在错误报告中。以下是导航到主页时生成错误的请求示例:

主页错误截图,红色突出显示

注意它是红色的,表示错误,并且错误代码是500,这意味着内部服务器错误。这已经是有用的报告信息;我们可以附上一张错误的截图,并说它是 "500 - 内部服务器"。

首先要注意的是请求发送到的 URL。在这种情况下,redirect?code=... 是我们联系的 URL。这对于识别导致错误的服务非常有用。例如,如果 URL 包含 foundry-metadata,那么 foundry-metadata 服务就是导致问题的原因——这当然是有用的错误报告信息。

请求的 cURL 等效项也很有用。您可以通过右键选择请求本身并从菜单中选择 Copy > Copy as cURL 将其复制到您的报告中。

显示右键选择菜单的截图,选择了 "Copy as cURL"

cURL 是一个命令行工具,让您可以从命令行执行请求。这按钮复制了请求的确切内容到剪贴板,并允许调试器在任何地方以任何方式运行 cURL 请求,从而可以检查请求以确定可能出错的地方。这在 4xx 错误中特别有用。如果有任何错误 ID,请注意它们。您可能希望将此副本保存为 TEXT 文件以发送给 Palantir 支持,但请注意:

  • 出于安全原因,请从日志中删除任何现有的令牌,否则它们将被您的 Palantir 团队撤销。您可以通过搜索 "token" 和 "bearer" 并删除后续的字符串来检查文件是否包含令牌。
  • 在共享之前编辑敏感信息。

报告中最后一个有用的元素是响应本身,您可以通过相同的复制菜单中的 Copy response 访问。

要访问特定页面上的 Network 标签:

  1. 右键选择您打开的页面上的一个元素,然后选择 Inspect。这将在网页侧边打开一个屏幕。
  2. 导航到页面顶部附近的 Network 标签。
  3. 有时在您打开时,网络标签未填充。通过刷新页面或重新触发失败的行为来填充标签。
  4. 网络标签中的第二列是 "Status"。选择 Status 直到按降序排序。这将把失败请求带到顶部,因为它们将有更高的状态代码。失败请求也将显示为红色。
  5. 找到页面上可能与您失败相关的请求。选择请求以获取更多信息,如错误消息或 errorInstanceID。

在网络标签中查找追踪 ID

TraceID 是请求的唯一标识符,允许将浏览器中的进程与日志中存储的记录匹配。

要查找 traceID,请按照上一节中描述的方式打开网络标签。根据情况,不同请求可能值得调查;通常,红色(表示失败)的请求在浏览器中显示错误时很有用。

选择一个请求以查看其详细信息。

Trace ID 屏幕

Response Headers 中找到 x-b3-traceid,在上图中以红色突出显示。 复制该值,在此示例中为 255c17c75ae752a5,并将其以文本形式与 Palantir 支持共享。

有关更多信息,请查看 Chrome™ DevTools 检查网络活动文档 ↗.

元素标签

元素标签显示您正在查看页面的 "DOM"(文档对象模型)。这构成了您在页面上看到的所有视觉内容,以其底层 HTML 形式表示:

DevTools 元素视图

可以使用 Inspect Element 工具来探索这棵 HTML 数据树。有两种使用方式。首先,我们可以使用指针版本,通过 DevTools 工具栏中的这个按钮访问:

DevTools 指针

选择此按钮后,指针变为 "活动",让我们可以选择网页上的 Elements 并在 DOM 中查看它们。

第二种使用方式是右键选择页面上的某个内容,然后从下拉菜单中选择 Inspect。这与使用指针版本具有相同的效果。

显示右键选择菜单的截图,选择了 "Inspect"

如有必要,这可以为您的支持团队提供额外的信息以帮助故障排除。

有关更多信息,请查看 Chrome™ DevTools 元素文档 ↗.


Chrome™ 是 Google Inc. 的商标。