许多类在使用配置对象创建(实例化)类时使用快捷名称。快捷名称称为别名
(如果类扩展 Ext.Component,则称为xtype
)。适用于类的类名的旁边列出了别名/xtype 以供快速参考。
框架类或其成员可以指定为私有
或受保护
。否则,类/成员为公有
。公有
、受保护
和私有
是访问描述符,用于传达如何以及何时使用类或类成员。
公有类和类成员可供任何其他类或应用程序代码使用,并且可以依赖于主要产品版本中的稳定性和持久性。公有类和成员可以通过子类安全地扩展。
受保护类成员是稳定的公有
成员,旨在由拥有类或其子类使用。受保护成员可以通过子类安全地扩展。
私有类和类成员由框架内部使用,不打算由应用程序开发人员使用。私有类和成员可能会在任何时候更改或从框架中省略,并且不应依赖于应用程序逻辑。
静态
标签。*请参见下面的静态。下面是一个示例类成员,我们可以对其进行剖析以显示类成员的语法(在这种情况下,从 Ext.button.Button 类中查看的 lookupComponent 方法)。
让我们看看成员行中的每一部分
lookupComponent
)( item )
)Ext.Component
)。对于不返回 undefined
以外任何内容的方法,可以省略此项,或者可能显示用正斜杠 /
分隔的多个可能值,表示返回的内容可能取决于方法调用的结果(即,如果 get 方法调用成功,则方法可能返回 Component,如果失败则返回 false
,将显示为 Ext.Component/Boolean
)。PROTECTED
- 请参见下面的标志部分)Ext.container.Container
)。如果成员来自当前类,则源类将显示为蓝色链接;如果成员是从祖先或混合类继承的,则显示为灰色。查看源
)item : Object
)列出。undefined
,则“返回”部分将注明返回的类或对象类型以及描述(在本例中为 Ext.Component
)自 3.4.0 起可用
- 示例中未显示)默认为:false
)API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。
classInstance.method1().method2().etc();
false
,则标记为可预防的事件将不会触发- 表示框架类
- 单例框架类。*有关更多信息,请参阅单例标志
- 组件类型框架类(Ext JS 框架中扩展 Ext.Component 的任何类)
- 表示类、成员或指南在当前查看的版本中是新的
- 表示类型为 config
的类成员
- 表示类型为 property
的类成员
- 表示类型为 method
的类成员
- 表示类型为 event
的类成员
- 表示类型为 theme variable
的类成员
- 表示类型为 theme mixin
的类成员
- 表示类、成员或指南在当前查看的版本中是新的
在 API 文档页面上类名称正下方是一行按钮,对应于当前类拥有的成员类型。每个按钮按类型显示成员数(此计数会随着应用筛选器而更新)。单击按钮将导航到该成员部分。将鼠标悬停在成员类型按钮上将显示一个弹出菜单,其中包含该类型的所有成员,以便快速导航。
与类配置选项相关的 Getter 和 Setter 方法将显示在方法部分以及 API 文档和成员类型菜单的配置部分中,位于它们所处理的配置正下方。Getter 和 Setter 方法文档将位于配置行中,以便于参考。
您的页面历史记录保存在本地存储中,并显示在顶部标题栏正下方(使用可用空间)。默认情况下,仅显示与您当前正在查看的产品/版本匹配的搜索结果。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选选项来扩展显示内容。这将显示历史记录栏中所有产品/版本的所有近期页面。
在历史记录配置菜单中,您还将看到最近访问的页面列表。结果按“当前产品/版本”和“全部”单选选项进行筛选。单击 按钮将清除历史记录栏以及本地存储中保存的历史记录。
如果在历史记录配置菜单中选择“全部”,则“在历史记录栏中显示产品详细信息”复选框选项将被启用。选中后,每个历史页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也将以工具提示的形式显示产品/版本。
可以使用页面顶部的搜索字段搜索 API 文档和指南。
在 API 文档页面上,还有一个筛选器输入字段,它使用筛选器字符串筛选成员行。除了按字符串筛选外,您还可以按访问级别、继承和只读筛选类成员。这是使用页面顶部的复选框完成的。
API 类导航树底部的复选框筛选类列表以包括或排除私有类。
单击空搜索字段将显示您最近 10 次搜索,以便快速导航。
每个 API 文档页面(Javascript 基本类型页面除外)都有一个与该类相关的元数据菜单视图。此元数据视图将包含以下一个或多个
Ext.button.Button
类具有备用类名 Ext.Button
)。备用类名通常用于向后兼容。可运行示例(小提琴)在页面上默认展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。
类成员在页面上默认折叠。您可以使用成员行左侧的箭头图标展开和折叠成员,或全局使用右上角的展开/折叠所有切换按钮。
在较窄的屏幕或浏览器上查看文档将导致针对较小尺寸优化视图。桌面和“移动”视图之间的主要差异是
可以通过单击 API 文档页面顶部的类名来查看类源。可以通过单击成员行右侧的“查看源”链接来查看类成员的源。
Inspect 工具使用户能够在运行的 Web 应用程序中轻松找到组件和元素,并创建定位器字符串以及页面对象以在测试中访问这些组件。
查看 Ext JS 应用程序页面上所有组件的层次结构,以及非 Ext JS Web 应用程序上元素的层次结构。
将该层次结构中的组件添加到选定的定位器列表中。
在浏览器中将鼠标悬停在网页上,然后单击以选择组件/元素。然后将这些组件/元素添加到所选定位符列表中。
单击层次结构组件/元素或所选定位符时,Inspect 将尝试使用绿色矩形在浏览器中突出显示该组件。
可以为所选定位符指定页面名称和各个名称,并将其另存为页面对象,以便在测试中用作 stpo.<page name>.<locator name>
。
提供了一个向导,可将层次结构父项添加到定位符以及高级属性。
所选定位符可以简单地插入到当前测试中,作为 ST Futures API 表达式。使用页面对象功能不是使用 Inspect 生成定位符的必需条件。
如果存在页面对象和已命名定位符,则可以将访问页面对象的 JavaScript 表达式插入到当前测试中。
Inspect 工具可帮助您从网页上的元素派生有意义的定位符。如果您考虑一个简单的场景,您需要在文本字段中输入一个值,您将看到一个好的定位符的重要性。对于页面上的 Ext JS 文本字段,框架可能会分配一个默认的自动生成的 id
为 @textfield-1143
。由于 Ext JS 是一个高度组件化的框架,我们可以使用组件查询而不是 id
。下面显示的文本字段的组件查询为 textfield[fieldLabel="Add Task"]
。
按照以下步骤使用 Inspect 工具,无论是浏览器内(单页面应用程序)还是 WebDriver 场景(多页面应用程序)测试。
注意:即使只有一个登录页面重定向到单页面 Ext JS 应用程序,也需要使用 WebDriver 场景。
如果您从头开始,没有测试,并且已经部署了应用程序 URL,则以下步骤描述了如何使用 Inspect 工具
在您的场景中创建一个新的 Jasmine 测试套件
打开新创建的 Jasmine 规范文件
使用预制的测试用例 should pass
。
将光标放在 it
块内,然后单击 Inspect 按钮(搜索图标)启动 Inspect 工具。
选择一个浏览器
等待浏览器打开,应用程序加载并启动,并显示和填写组件层次结构的 Inspect 网格。
如果您在场景中配置的应用程序/URL 指向登录页面,并且您需要检查应用程序的主要部分,则在使用 Inspect 之前需要执行一些步骤。您可以通过两种方式实现此目的
将代码添加到您的测试中,该代码导航到应用程序的主部分。常见的情况是登录页面。
describe("test", function() {
it("login then inspect", function() {
ST.element('@email').type('a-username');
ST.element('@password').type('a-password');
ST.element('@submit').click();
// Insert your cursor here, and use the Inspect tool.
// The steps above will be executed before Inspect is used.
});
});
按 Ctrl/Cmd-I
禁用浏览器中的检查,然后继续导航到应用程序的主部分。
此时,您应该在 Inspect 窗口中看到一个组件层次结构。您可以在此层次结构中导航。
当您单击层次结构中的一个组件时,您可能会看到该组件在浏览器中以亮绿色矩形突出显示。一条消息将通知您组件是否突出显示。如果组件被隐藏,您将看不到它被突出显示。
使用所选值,您可以在此处采用两种不同的路径
ST API 允许您创建针对 Web 应用程序中的 Ext JS 组件和通用元素的测试。Inspect 工具直接在编辑器中生成 ST API 代码,该代码可以根据测试用例扩展适当的 API 方法。
Inspect 向导允许用户选择更多属性以与组件或元素一一匹配。可以通过单击所选定位符网格中的定位符单元格之一并单击省略号图标来访问 Inspect 向导
当定位符匹配多个组件/元素时,可能需要其他属性来缩小到特定组件/元素,这可以通过启动向导来完成。每次添加一个新属性时,向导都会指示匹配的组件/元素的数量。当只有一个匹配项时,用户可以保存定位符并在测试中使用它。
以下方法将允许您使用 Inspect 工具创建有意义的定位符。我们将在未来增强此功能,以便更有效地捕获页面导航和 URL 更新。
可以通过更改锚点来访问单页应用程序中的页面。例如,在 Sencha 网站上的示例应用程序中 http://examples.sencha.com/extjs/6.2.0/examples/admin-dashboard/#dashboard - #dashboard
是锚点。
要检查电子邮件视图,应创建一个新规范。在 Email.js 中,插入将使用 ST.navigate
API 将测试导航到电子邮件页面的代码。
启动 Inspect 工具并按照“使用 Inspect 工具”部分中的步骤获取新视图的定位器
涉及页面导航的多页应用程序应包含将用户登录并导航到特定页面的代码,如上所述
在你位于特定页面上后,启动 Inspect 工具并按照“使用 Inspect 工具”部分中的步骤获取新页面的定位器
使用 DOM 树层次结构为没有 Ext JS 组件的应用程序中的 HTML 元素或页面编写测试。
可以通过两种不同的方式识别元素
创建一个新的 Jasmine 测试套件
打开新创建的 Jasmine 规范文件
使用预制的测试用例 should pass
。
将光标放在 it
块内,然后单击 Inspect 按钮(搜索图标)启动 Inspect 工具。
选择一个浏览器
等待浏览器打开,应用程序加载并启动,并显示和填写组件层次结构的 Inspect 网格。
此时,你应该在 Inspect 窗口中看到 DOM 层次结构。你可以在此层次结构中导航。
当你单击层次结构中的元素时,你可能会看到浏览器中用亮绿色矩形突出显示该元素。
创建一个新的 Jasmine 测试套件
打开新创建的 Jasmine 规范文件
使用预制的测试用例 should pass
。
将光标放在 it
块内,然后单击 Inspect 按钮(搜索图标)启动 Inspect 工具。
选择一个浏览器
等待浏览器打开,应用程序加载并启动,并显示和填写组件层次结构的 Inspect 网格。
此时,你应该在 Inspect 窗口中看到 DOM 层次结构。你可以在此层次结构中导航。
不要从层次结构中识别元素,而是在页面上单击元素
Studio 中的网格将开始显示应用程序中单击的元素以及推荐的定位器
检查“已验证”列中是否有一个绿色的复选标记,并且应用程序上的元素有一个绿色的矩形。这意味着你有一个唯一的定位器。
在为应用程序编写测试时,可能会出现页面是标准 HTML 页面或没有 Ext JS 或 ExtReact 组件的情况。在这种情况下,无法使用 Futures API,例如 ST.component
或 ST.grid
。
我们创建了通用 API ST.element
,它将与 DOM 上的任何标准元素一起使用并执行许多操作,例如 click
、type
等。此外,ST.element
API 可用于断言基本验证,例如验证元素中的文本值。
类似地,ST.table
API 将与 Web 页面上不是 Ext JS 网格的通用表格一起使用。Table API 具有特定方法,允许你访问单元格中的值。利用此 API 中的方法将加快测试创建过程。
可以在 API 文档 中找到有关这些 API 的更多详细信息。
Sencha Test 中的 Inspect 工具可以帮助以下方面
识别比 ID 更具意义和可靠的唯一定位器
利用 Inspect Wizard 添加其他属性或更改推荐的定位器以创建稳定的策略
直接使用已识别的定位器创建页面对象,然后使用页面对象编写测试,从而使测试代码简洁。