本主题解释如何应用和配置 HTML 清理工具,该工具识别和报告输入中的 HTML/XHTML 编码和结构问题,并(可选)通过修复这些问题和可选地将代码转换成 XHTML 来转换代码。

本章包含:

了解 HTML 清理

HTML 清理工具识别并报告输入中的 HTML/XHTML 编码和结构问题。此外,该工具还可以通过修复这些问题并可选地将代码转换为 XHTML 来转换代码。转换后的代码作为输出返回。

默认情况下,HTML 清理工具被配置为清理 HTML 文件。如果希望该工具将代码转换为 XHTML、对 HTML 片段进行操作,或者对 ASP、JSP 和 PHP 文件进行操作,可以按照 配置 HTML 清理中的描述更改配置设置。

它可以被链接到另一个测试,以对 web 场景步骤执行时发生的浏览器请求进行操作。或者,它可以作为一个独立的测试使用,对工具配置面板的 Input 选项卡中指定的文件/文本进行操作。

HTML 清理支持 4.01 HTML 字符实体。

作为一个测试套件工具,它允许你将识别和清除 HTML 问题作为功能测试场景的一部分。若要在静态分析期间识别 HTML 问题,请使用“检查 HTML 格式良好性”规则,该规则位于清理 HTML 类别中。此规则具有与 HTML 清理工具相同的自定义选项。注意,静态分析选项不允许你也通过修复这些问题和将代码转换成 XHTML 来转换代码。

配置 HTML 清理

可以自定义以下选项:

  • Show informational messages: 使用默认的工具配置,此选项确定 SOAtest 是否报告在清理期间所做的更改。如果更改了 HTML 清理配置,使其不再向编辑工具或其他工具发送“已转换的源”输出,则此选项将确定 SOAtest 是否报告进行指定转换所需的更改。消息将在结果窗口中报告,可以通 Window 菜单访问。

  • Process ASP, JSP, PHP files: 确定 SOAtest 是否尝试在可用的 ASP、JSP 和 PHP 文件上执行指定的目标操作。注意,启用此选项时,SOAtest 将忽略这些文件中的 ASP <% ...%>, JSP <% ...%>, and PHP <? ...?> 标记,以及忽略 JSP 脚本和动态生成 HTML 属性或属性值的自定义操作。

  • Keep embedded scripts and styles: 确定 SOAtest 是否尝试将所有脚本和样式(包括包含特殊字符的脚本和样式)提取到外部文件。

  • Target Document Type: 配置所执行清理的类型和级别。有关可用选项的更多信息,请参见 Customizing Target Document Type
  • Add XML Declaration: 确定 SOAtest 是否在转换后的源文件的开头添加 XML 声明(<?xml version="1.0"?>)。此选项仅在 XHTML (DTD) 模式下可用。

  • Update IDs in DOCTYPE declaration: 确定 SOAtest 是替换 DOCTYPE 声明的 Id(如果文档已经包含 DOCTYPE 声明),还是使用 ID 添加 DOCTYPE 声明(如果文档还没有包含 DOCTYPE 声明)。此选项仅在 XHTML (DTD) 模式下可用。

自定义目标文档类型

你可以通过更改 HTML Cleanup 配置面板的 Target Document Type 字段中列出的选项来配置所执行的清理的类型和级别。

下表描述了可用的模式:

选项说明例如

HTML Fragment

清除 HTML 片段,但不将它们转换为 XHTML。在此模式下,SOAtest:

  • 如果为未知标记添加了缺失的结束标记,则添加缺失的结束标记并报告。
  • 设置属性的默认值(即,默认为“true”的选项)。
  • 在属性值周围添加引号。
  • 检查需要数值的属性中的非数值。
  • 移除孤立的结束标记。SOAtest 没有在这种模式下处理常规的结构问题。

注意

这是默认的模式。

<html>
hello world
<table WIDTH=20>

转换成

<html>

hello world

<table WIDTH="20"></table></html>

HTML Document

清除完整的 HTML 文档,但不将其转换为 XHTML。在此模式下,SOAtest:

  • 执行所有 HTML 片段模式操作。
  • 通过确保文件满足正常的 HTML 需求,修复了整个文档结构的问题。
  • 文档要求 <HTML> <HEAD> <TITLE> </TITLE> </HEAD> <BODY> </BODY> </HTML>
  • 片段要求 <HTML> <HEAD> <TITLE> </TITLE> </HEAD> <FRAMESET> </FRAMESET> </HTML>

<html>
hello world
<table WIDTH=20>

转换成

<html><head><title></title></head><body>
hello world
<table WIDTH="20"></table></body></html>

XHTML Fragment

清除 HTML 片段并将其转换为 XHTML。在此模式下,SOAtest:

  • 执行所有 HTML 片段模式操作。
  • 必要时将嵌入的脚本和样式表移动到外部文件。
  • 为各种标签添加缺失的属性(例如,为 IMG 标签添加缺失的 src 属性)。
  • 确保所有属性都是小写的。

<html>
hello world
<table WIDTH=20>

转换成

<html>
hello world
<table width="20"> </table></html>

XHTML (DTD)

清除 HTML 文档并将其转换为 XHTML。在此模式下,SOAtest:

  • 执行所有 XHTML 片段和 HTML 文档模式操作。
  • 尝试将文档转换为符合默认 DTD(W3C 中的 XHTML-transitional DTD)或 DTD Public IDSystem ID 字段中指定的 DTD 的 XHTML。
  • 添加 DOCTYPE 声明。
  • 在转换源的开头添加一个 XML 声明<?xml version="1.0"?>)(如果启用了 Add XML Declaration 选项)。

<html>

hello world

转换成

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title />
</head><body>
hello world
<table width="20">
</table></body></html>

保存转换后的文件


如果想要 SOAtest 保存由 Cleanup HTML 工具转换的文件,则如下添加一个写文件工具输出:

  1. 右键单击 Test Case Explorer 选项卡中的 HTML Cleanup 工具节点,并从快捷菜单中选择 Add Output 。将显示 添加输出 对话框。



  2. 在“添加输出”对话框的左窗格中选择 Transformed Source ,在右窗格中选择 Write File ,然后单击 Finish。将 Transformed Source> Write File 节点添加到 HTML 清理节点。
  3. (可选)自定义写入文件工具,如 编写文件中所述。
  • No labels