网络对象API
Squish提供了一个用于Web对象的完整API,如下说明。
Squish的全局Web功能按字母顺序列于下文,其后是按字母顺序排列的预定义对象和类,以及它们包含的功能、方法和属性,也按字母顺序排列。
Web对象API函数参数
在下文中列出的一切函数,凡带有objectOrName
参数的,参数可以是对象或对象名称的引用。
Web对象API的一些函数可以接受一个modifierState
参数,用于指示鼠标点击时按下哪些特殊键,以及是否点击了右键。默认为左键。
modifierState
可以是以下之一:HTML_Event.AltKey
、HTML_Event.ControlKey
、HTML_Event.ShiftKey
、HTML_Event.RightButton
。在此处所示的形式适用于Python和JavaScript。对于Perl和Ruby,将点替换为两个冒号,例如HTML_Event::ControlKey
,对于Tcl,则使用枚举函数,例如enum HTML_Event Control
。
可以通过位运算或(逻辑或)组合modifierState
值,例如(JavaScript、Perl、JavaScript、Ruby)mouseClick(..., HTML_Event.ShiftKey | HTML_Event.RightButton)
。
与多个标签或浏览器窗口交互
Squish目前支持与Firefox、Microsoft Edge、Mac上的Safari、Google Chrome和基于Chromium的应用程序的多重浏览器窗口或标签进行交互。它使用活动浏览器标签的概念来执行点击操作或在对象中查询信息。因此,当通过打开新标签或窗口或使用Squish提供的专门标签函数更改活动标签时,交互和对象查找将在新激活的标签中发生。
单个标签由
对基于Chromium的应用程序的支持有限,因为Squish只能访问此类应用程序内多个Web视图的内容。如果应用程序允许更改哪些Web视图可见哪些不可见,例如因为它使用选项卡小部件来显示它们,则Squish无法记录或重播此类更改。
Web函数的本地变体
许多交互函数(如
本地变体需要正确确定对象在屏幕上的位置,这取决于浏览器和网站内容,可能会有些挑战。它们还要求系统上没有人与此交互或干扰它们。使用JavaScript事件的功能通常会在使用鼠标或键盘进行其他操作时仍然工作。
然而,由于安全原因,某些交互操作受到浏览器的限制,因此它们不能由网站上的JavaScript触发。此外,基于JavaScript的功能可能无法正确复制原始意图。例如,setText无法在JavaScript中正确生成键盘事件,所以它设置字段的值并触发一个change事件,这不足以让某些网站意识到新的值。
Web对象中的合成属性
在DOM树中表示HTML元素的对象根据HTML标准提供对这些HTML元素的公共属性和属性的访问。除了这些之外,它们还可能提供某些信息的便利属性,称为合成属性。大多数这些合成属性不能用作查找这些对象的单一名称的部分,因为Squish通过一种不可直接用于对象查找的机制提供它们。所以例如,HTML_Object.height属性不能用于单一名称。在各个属性文档中对此规则有一些例外,例如HTML_Object.simplifiedInnerText。
Web对象API对象和类
以下是一些到Web对象API对象和类的快速链接(按其继承层次结构显示)
- 浏览器对象
- BrowserTab类
- HTML_Object类
- HTML_Anchor类
- HTML_Array类
- HTML_CalendarEvent类
- HTML_ColorField类
- HTML_CustomButtonBase类
- HTML_CustomCheckbox类
- HTML_CustomItem类
- HTML_CustomRadioButton类
- HTML_DateChooser类
- HTML_Document类
- HTML_ExpandableSectionHeader类
- HTML_Form类
- HTML_FormElement类
- HTML_Menu类
- HTML_MenuItem类
- HTML_Option类
- HTML_ProgressBar类
- HTML_Style类
- HTML_Table类
- HTML_Tab类
- HTML_TabWidget类
- HTML_XPathResult类
- JsObject
以下是一些到Web对象API函数的快速链接
activateBrowserTab(tab)
此函数更改浏览器中的活动选项卡,如果需要,还会激活对应的窗口。要激活的 tab
必须是 BrowserTab 类 的实例。
在基于 CEF 的 Electron 或其他基于 Chromium 的应用程序中使用时,此功能不受支持。在调用列表中第一个以外的 BrowserTab 对象时将抛出异常。
在此类应用程序中激活不同的 Web 视图应通过与其匹配的桌面应用程序版本 Squish 自动化。
activeBrowserTab()
此函数以 BrowserTab 类 的实例的形式检索当前活动选项卡。这将是执行所有其他函数和对象查找的选项卡。
在基于 CEF 的 Electron 或其他基于 Chromium 的应用程序中使用时,此功能尚不完全支持。返回的 BrowserTab 对象总是列表中的第一个,并且不会根据应用程序中被激活的 Web 视图而改变。
automateLogin(username, password)
此函数自动使用原生的浏览器认证对话框,传入指定的 username
和 password
。
有关在不同场景中使用此函数的详细信息,请参阅 自动化原生登录。
注意:在 macOS 上,您必须通过系统偏好设置中的辅助功能启用“通用访问”才能使用此功能。请参阅 macOS 通用访问。
browserTabs()
此函数检索与浏览器中所有窗口当前打开选项卡相对应的 BrowserTab 类 实例的列表。
cancelPrompt()
此函数用于模拟用户取消页面 JavaScript 代码中对 prompt
函数的调用而产生的对话框。
在幕后,当Squish测试一个执行JavaScript prompt
函数调用的Web应用程序时,Squish会阻止对话框弹出(如果浏览器允许这样做,否则将自动处理),它会抑制对话框,停止Web应用程序的执行,并在重新播放取消时调用cancelPrompt
函数,如果重新播放确认,则调用closePrompt(":dummy", text)函数。然后,Squish继续执行Web应用程序。
另请参阅 closePrompt(":dummy", text),String lastPromptDefault(browserTab) 和 String lastPromptText(browserTab)。
chooseColor(objectOrName, htmlRGBvalue)
此函数用于模拟用户通过HTML颜色字段元素与用户交互选择颜色。必须将objectOrName
识别为HTML_ColorField类,否则将引发可捕获的异常。必须将htmlRGBvalue
识别为一个包含HTML颜色值(格式如"#RRGGBB"
)的字符串,其中每个组件(RR
为红色,GG
为绿色,BB
为蓝色)是表示组件颜色值的两个十六进制数,范围在00
到FF
之间。(例如,请参阅W3School的HTML颜色页面。)
有关如何添加自定义颜色选择器的支持,请参阅颜色选择器支持。
chooseDate(objectOrName, date)
此函数用于模拟用户通过与用户交互选择日期的日期选择器元素。必须将objectOrName
识别为HTML_DateChooser类,否则将引发可捕获的异常。必须将date
识别为DateTime类型。
有关如何添加自定义日期选择器的支持,请参阅日期选择器支持。
chooseFile(filepath)
此函数可以用来自动化浏览器打开的文件对话框的交互。必须将filepath
识别为要选择的文件的绝对路径。
在文件对话框不是通过标准HTML文件域打开,而是使用一些定制控件来管理上传的文件的情况下,此函数可能很有用。这些控件的交互通常可以正常录制,然后在脚本中添加一行chooseFile以自动选择文件对话框中的文件。
clearObjectCache()
这是一个高级函数,在测试会自动更新自己,替换一些或所有HTML元素为新元素的网站时可能很有用。在这种情况下,在更新后调用此函数可以帮助Squish通过重新读取网页的DOM树来刷新其内部对象缓存。
此函数清除Squish for Web使用的内部缓存,以便Squish无需在浏览器中重复查找相同的对象。调用此函数后,所有对象引用(例如由Object waitForObject(objectOrName)和Object findObject(objectName)函数返回的引用)都无效,因此必须获取新的对象引用,例如使用Object waitForObject(objectOrName)函数来获取任何在清除缓存之后想要交互的对象的新引用。
另见,rehook(browserTab)函数。
clickButton(objectOrName)
此函数点击指定的objectOrName
按钮,它可以是一个button
、radio
、checkbox
、submit
或image
对象。
clickItem(objectOrName, itemText)
clickItem(objectOrName, itemText, modifierState)
clickItem(objectOrName, row, column)
clickItem(objectOrName, row, column, modifierState)
此函数使用可选的modifierState
修饰状态(如果提供)点击具有给定itemText
的项或给定objectOrName
视图小部件中的row
和column
的项。
注意,在row
和column
版本中,objectOrName
必须是HTML_CustomItemView类的类型。此外,如果row
或column
超出范围(小于零或大于行数或列数),则不会引发异常,也不会执行点击。
有关哪些值对modifierState
有效,请参阅Web对象API函数参数。
clickLink(objectOrName)
此函数点击由objectOrName
对象标识的超链接(锚点)。
clickTab(objectOrName, tabTitle)
此函数在objectOrName
选项卡小部件中点击带有选项卡标题文本tabTitle
的选项卡。如果存在这样的选项卡,则它现在将是最高级(即可见)的选项卡。如果objectOrName
未被识别为HTML_TabWidget类,则会引发可捕获的异常。
有关如何添加对自定义选项卡小部件的支持,请参阅Tab Widget支持。
clickTreeHandle(objectOrName, itemText)
此函数点击具有指定itemText
的objectOrName
树小部件中项的展开/折叠(树句柄)。
注意:该函数通常不应在手写测试脚本中使用,因为Squish可以处理所有受标准支持的网络工具包使用的所有树小部件的这种交互。此函数存在的主要原因是为了支持与Squish默认不支持的自定义Web树小部件的交互。
有关更详细的信息,包括使用示例,请参阅如何设置对复杂小部件的支持。
closeAlert(":dummy")
此函数用于模拟用户在响应网页JavaScript代码中alert
函数调用时弹出的对话框中点击确定。第一个参数必须是假对象名称(例如,":dummy"
);。
在幕后,当Squish测试一个执行JavaScript alert
函数调用的Web应用程序时,Squish不等待对话框弹出,而是抑制对话框(如果浏览器允许这样做,否则对话框将是自动化的),停止Web应用程序的执行,并等待closeAlert
函数。然后Squish恢复Web应用程序的执行,就像用户已关闭对话框一样。
请参阅String lastAlertText(browserTab)。
closeConfirm(":dummy", confirmed)
此函数用于模拟用户在响应网页JavaScript代码中confirm
函数调用时弹出的对话框中点击是或否。第一个参数必须是假对象名称(例如,":dummy"
);confirmed
是一个布尔值,若为true
则表示用户点击了是,若为false
则表示用户点击了否。
在幕后,当Squish测试一个执行JavaScript confirm
函数调用的Web应用程序时,Squish不等待对话框弹出,而是抑制对话框(如果浏览器允许这样做,否则对话框将是自动化的),停止Web应用程序的执行,并调用closeConfirm
函数,如果记录到测试员点击 了是则传递true
,如果点击了否则传递false
。然后Squish恢复Web应用程序的执行,将true
或false
的结果作为confirm
函数调用的返回值返回给应用程序。
请参阅String lastConfirmText(browserTab)。
closePrompt(":dummy", text)
此函数用于模拟用户在响应网页JavaScript代码中prompt
函数调用时弹出的对话框中键入一些文本。第一个参数必须是假对象名称(例如,":dummy"
);text
是通常发送到提示对话框文本编辑器的文本。
在幕后,当Squish测试一个执行JavaScript prompt
函数调用的Web应用程序时,Squish不等待对话框弹出,而是抑制对话框(如果浏览器允许这样做,否则对话框将是自动化的),停止Web应用程序的执行,并在测试记录时回放取消或调用closePrompt
函数以确认,传递测试员输入的文本。然后Squish恢复Web应用程序的执行,将文本作为prompt
函数调用的返回值返回给应用程序。
请参阅cancelPrompt()、String lastPromptDefault(browserTab)和String lastPromptText(browserTab)。
closeWindow(":[Window]")
此函数关闭浏览器窗口。参数必须是字符串":[Window]
。
attachToBrowser(portOrWindowTitle)
此函数允许将Squish for Web连接到已在服务器配置中选择的浏览器运行的实例。这可以在浏览器不应由Squish本身启动,而是由一些作为测试自动化的一部分运行的其他程序启动的情况下使用。portOrWindowTitle
对于大多数支持的浏览器都是必需的,并指定了如何找到Squish应连接的浏览器实例。以下示例代码显示了哪些浏览器使用此参数以及应提供哪种类型的值。当指定数字时,必须与在浏览器扩展安装期间配置的通信端口号相匹配。
当portOrWindowTitle
是一个字符串时,它需要与现有浏览器窗口的标题匹配。窗口标题模式可以使用通配符来允许连接到标题的一些部分发生变化的窗口。(*
匹配任意数量的字符,?
匹配任意单个字符)。然而,必须以这种方式指定通配符,以便仅识别单个浏览器窗口。窗口标题通常是浏览器活动标签的标题,通常可以从任务栏中鼠标悬停在该窗口条目上时出现的工具提示中获取。
有关如何使用此功能的更完整的说明,请参阅将附件附加到运行中的Web浏览器。
function main() { // Firefox (for Chrome use 9935) attachToBrowser( 9932 ); // Internet Explorer // attachToBrowser( "*Automated Cross-Platform GUI Testing" ); // Safari // attachToBrowser(); }
sub main { # Firefox (for Chrome use 9935) attachToBrowser( 9932 ); # Internet Explorer # attachToBrowser( "*Automated Cross-Platform GUI Testing" ); # Safari # attachToBrowser(); }
def main(): # Firefox (for Chrome use 9935) attachToBrowser( 9932 ) # Internet Explorer # attachToBrowser( "*Automated Cross-Platform GUI Testing" ) # Safari # attachToBrowser()
def main() # Firefox (for Chrome use 9935) attachToBrowser( 9932 ) # Internet Explorer # attachToBrowser( "*Automated Cross-Platform GUI Testing" ) # Safari # attachToBrowser() end
proc main {} { # Firefox (for Chrome use 9935) invoke attachToBrowser 9932 # Internet Explorer # invoke attachToBrowser "*Automated Cross-Platform GUI Testing" # Safari # invoke attachToBrowser }
String contextOf(window)
注意:此函数已过时,除非您禁用了标签支持。考虑使用真实名称来识别浏览器标签页和窗口。
此函数返回给定window
的上下文字符串。上下文字符串是页面的“基本位置”——这包括精确标识页面必要的任何父位置(例如,如果页面实际上是一个frame或iframe元素)。(另请参阅,HTML_Array contextList()和Boolean setContext(context)。)
HTML_Array contextList()
注意:此函数已过时,除非您禁用了标签支持。考虑使用browserTabs()函数来访问浏览器标签页和窗口。
此函数返回一个包含Squish已连接的浏览器窗口引用的HTML_Array Class。可以使用String contextOf(window)函数获取特定窗口的上下文。
注意:此列表不包括网页中存在的任何frame或iframe元素。它只包含Squish连接到的窗口。
(另请参阅,Boolean setFrameContext(browserTab, frameName)、String currentContext()、String contextOf(window)、Boolean setContext(context)和waitForContextExists(context)。)
String currentContext()
注意:此函数已过时,除非您禁用了标签支持。考虑使用activeBrowserTab()函数代替。
此函数返回当前活动的浏览器窗口。您可以使用 String contextOf(window) 来获取此窗口的字符串表示形式。如果页面使用框架或iframe,这也可以是此类框架的内容窗口,而不是包含该页面的窗口本身。(另请参阅,String contextOf(window),Boolean setFrameContext(browserTab, frameName),Boolean setContext(context),以及waitForContextExists(context)。)
doubleClick(objectOrName, x, y)
此函数在objectOrName
小部件上双击鼠标。点击发生在小部件的左上角或指定位置(x
,y
)——这相对于小部件自身的左上角——如果指定了。
dragAndDrop(src_objectOrName, sx, sy, target_objectOrName, tx, ty)
此函数执行拖放操作。它首先在 source_objectOrName
小部件上开始拖动,位置为 sx
和 sy
(相对于 source_objectOrName
小部件的坐标),然后在小部件 target_objectOrName
上放下,位置为 tx
和 ty
(相对于 target_objectOrName
小部件的坐标)。
startDrag(src_objectOrName, sx, sy)
此函数执行开始拖动操作。它从 source_objectOrName
小部件开始的坐标位置 sx
和 sy
(在 source_objectOrName
小部件的坐标中)开始拖动。如果拖动开始后目标对象才变得可用,这可能很有用。
dropOn(target_objectOrName, tx, ty)
此函数执行放下操作。它将在 target_objectOrName
小部件上放下拖动的对象,位置为 tx
和 ty
(在 target_objectOrName
小部件的坐标中)。此函数应在调用 startDrag 之后调用,即拖动操作正在进行中。
Object evalJS(browserTab, code)
Object evalJS(code)
此函数在浏览器标签中评估 JavaScript code
字符串,该标签由 browserTab
引用。返回 code
中最后一条语句的结果。(另请参阅 如何使用 evalJS。)
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
Boolean hasContext(context)
注意:除非您已禁用标签支持,否则此函数已弃用。当您想要验证给定框架是否存在时请考虑使用 hasFrameContext
,如果您想检查标签是否存在,请使用带有能够识别特定标签的限定名称的 waitForObject
。
此函数返回 true
,如果包含与 context
匹配 URL 的窗口已打开并且可以通过测试脚本来访问;否则返回 false
。上下文字符串是页面的“基本位置”,这包括用于精确识别页面(例如,如果页面实际上是帧或iframe元素)所必需的任何父位置。 (另请参阅,Boolean setContext(context) 和 waitForContextExists(context)。)
Boolean hasFrameContext(browserTab, context)
此函数返回 true
,如果由 browserTab
引用的标签有一个与 context
匹配的框架,并且可以通过测试脚本来访问;否则返回 false
。框架上下文是基于框架在内部框架中的嵌套来标识页面内部框架的字符串。例如,页面的第一个框架有上下文 FRAME1,第二个 FRAME2 等,如果一个框架有另一个内部框架,可以使用 FRAME1.FRAME1 识别。 (另请参阅,Boolean setFrameContext(browserTab, frameName)。)
installEventHandler(eventName, handlerFunctionNameOrReference)
此函数安装一个全局事件处理器。当发生 eventName
类型的事件时,将调用 handlerFunctionNameOrReference
中命名的或引用的脚本函数。
下面的 eventName
可以是以下任何事件类型的名称
AlertOpened
– 当 JavaScript 的window.alert
函数显示一个警告框时发生BodyUnloaded
– 当 Squish 浏览器加载新页面或重新加载当前页面时发生。此事件在 Squish 成功 hook 任何框架或 iframe 时也会发出。处理器函数接收两个参数。第一个参数是更改的窗口或框架的 Squishcontext
名称。第二个参数是浏览器将要卸载的内容的location
URL。ConfirmOpened
– 当 JavaScript 的window.confirm
函数显示一个确认(确定/取消)框时发生Crash
– 如果 AUT 崩溃则发生ModalDialogOpened
– 当使用 Internet Explorer 特定的 JavaScriptshowModalDialog
函数打开模态对话框时发生ModelessDialogOpened
– 当使用 Internet Explorer 特定的 JavaScriptshowModelessDialog
函数打开无模式对话框时发生PromptOpened
– 当 JavaScript 的window.prompt
函数显示一个提示框时发生Timeout
– 当 Squish 响应超时发生WindowOpened
– 当使用 JavaScript 的window.open
函数打开新窗口时发生
handlerFunctionName
中的函数在注册的事件之一发生时(不带参数)会被调用。
有关示例,请参阅 如何使用事件处理器。
注意: 如果调用 installEventHandler
函数时 AUT 已经启动,则该函数将只起作用。例如,可以使用 ApplicationContext startApplication(autName) 函数。
Boolean isBrowserDialogOpen()
此函数返回 true
,如果当前打开的是原生浏览器对话框(如登录对话框、证书对话框等);否则返回 false
。
注意:在 macOS 上,您必须通过系统偏好设置中的辅助功能启用“通用访问”才能使用此功能。请参阅 macOS 通用访问。
注意:Squish无法检测从网页内容打开的对话框,因此当自动化基于Chromium的应用程序时,此功能始终返回false
。
布尔 isBrowserOpen()
此函数返回浏览器是否已运行,返回值为布尔类型, bağlı olarak true
或false
。
布尔 isPageLoaded(browserTab)
布尔 isPageLoaded()
如果浏览器标签中指定的browserTab
的页面已经完全加载,则此函数返回true
,否则返回false
。完全以及成功的加载意味着页面中的所有对象都可以潜在地被访问。此函数可以与布尔 waitFor(condition)函数一起使用,在测试脚本中访问页面之前等待页面加载。
由于页面加载、HTTP请求等都是异步的,即使调用isPageLoaded
函数后返回值为true
,仍然需要使用Object waitForObject(objectOrName)函数(或其他等待函数)以确保感兴趣的特定对象已经准备好被访问。此外,可能需要在Object waitForObject(objectOrName)函数中将超时时间设置为比默认的20 000毫秒更长的值。(另请参阅如何在测试中同步网页加载。)
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
字符串 lastAlertText(browserTab)
字符串 lastAlertText()
此函数返回在指定的browserTab
中,网页上最近出现的alert
函数调用中出现的文本(如果没有执行任何alert
调用,则可能为空)。
如果有多个警报,应使用clearAlertText()在警报之间清除其值。
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
clearAlertText()
此函数清除字符串 lastAlertText(browserTab)的值。
字符串 lastConfirmText(browserTab)
字符串 lastConfirmText()
此函数返回在指定的browserTab
中,网页上最近出现的confirm
函数调用中出现的文本(如果没有执行任何confirm
调用,则可能为空)。
如果有多个确认,应使用字符串 clearConfirmText()在确认之间清除其值。
另请参阅closeConfirm(":dummy", confirmed)。
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
字符串 clearConfirmText()
此函数清除字符串 lastConfirmText(browserTab)返回的值。
字符串 lastPromptDefault(browserTab)
字符串 lastPromptDefault()
此函数返回在指定的browserTab
中,网页上最近出现的prompt
函数调用中出现的文本(如果没有执行任何prompt
调用,则可能为空)。
另请参阅字符串 clearPromptDefault(browserTab)、closePrompt(":dummy", text)和字符串 lastPromptText(browserTab)。
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
String clearPromptDefault(browserTab)
此函数清除了String lastPromptDefault(browserTab)返回的值。
String lastPromptText(browserTab)
String lastPromptText()
此函数返回在指定的browserTab
中,网页上最近出现的prompt
函数调用中出现的文本(如果没有执行任何prompt
调用,则可能为空)。
请参阅String clearPromptText(browserTab)、closePrompt(":dummy", text)和String lastPromptDefault(browserTab)。
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
String clearPromptText(browserTab)
此函数清除了由String lastPromptText(browserTab)返回的值
loadUrl(url)
注意:此函数已过时。如果可能,请考虑使用startBrowser(url),或通过JavaScript直接设置窗口的location.href
属性来使其立即返回。有关比较这两个示例的说明,请参阅自动化本地登录。
此函数打开一个网络浏览器并加载数据url。
mouseClick(objectOrName)
mouseClick(objectOrName, modifierState)
mouseClick(objectOrName, x, y)
mouseClick(objectOrName, modifierState, x, y)
此函数在指定的objectOrName
小部件上点击鼠标。点击发生在小部件的左上角或在指定的情况下,位置为(《translate="no">x,
有关哪些值对modifierState
有效,请参阅Web对象API函数参数。
nativeMouseClick(objectOrName, button)
nativeMouseClick(objectOrName, x, y, button)
此函数在《translate="no">objectOrName小部件指定的位置
《translate="no">button参数是要使用的鼠标按钮,并且必须是《translate="no">MouseButton.LeftButton、《translate="no">MouseButton.MiddleButton、《translate="no">MouseButton.RightButton或《translate="no">MouseButton.NoButton(仅执行鼠标移动)之一。
注意:对于支持此功能的浏览器类型,将自动激活包含HTML元素的BrowserTab(或WebView)对象。此规则的例外是所有通过“基于Chromium的应用程序”选项自动化的浏览器。
请使用nativeMouseClick而不是mouseClick时,用于输入字段以确保在点击它们时将输入焦点移入。这样做可以正确复制用户操作。《translate="no">nativeMouseClick函数确保对象的浏览器选项卡具有输入焦点,并且它出现在其他窗口的前面。这是无法通过《translate="no">mouseClick函数完成的,因为《translate="no">mouseClick函数作为网站的一部分运行,无法更改操作系统输入焦点。它只能在不影响操作系统的输入焦点的前提下,在网页内移动焦点。
openNewTab(url)
openNewTab(url, timeout)
此函数在浏览器中打开一个新的标签页,加载指定的 url
。该函数返回一个表示新打开标签页的 BrowserTab 类 对象。
该函数接收一个可选的以毫秒为单位的 timeout
参数。如果在创建标签页、加载 url 或连接加载的网页时用时超过指定超时,则函数将取消创建标签页。如果发生超时,将生成一个错误,指示超时的原因。
注意:此函数不是所有类型的浏览器都可用。目前支持 Internet Explorer、Firefox、Google Chrome、Safari >=12 和 Microsoft Edge。
raiseWindow()
此函数尝试将浏览器窗口提升到窗口堆栈的最顶层,以便没有任何重叠窗口在其上方。
rehook(browserTab)
rehook?
这是一个高级函数,它重新加载并初始化运行在通过 browserTab
引用的标签内的 Squish for Web 的部分。我们建议尽可能使用 clearObjectCache() 函数,因为它稍微快一些,也更安全。browserTab
参数是可选的,如果没有提供,Squish for Web 将重新连接最初加载的标签。
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使另一个标签当前是活动的也是如此。如果测试使用多个浏览器标签或窗口,这可能导致意外行为,因此我们建议在新的脚本中始终指定 browserTab
参数。
JsObject retrieveJSObject(javascriptcode)
此函数执行一个 JavaScript 片段,并返回该代码片段的结果值。返回值可以是原始值,即字符串或数字,也可以是作为 JsObject 的 JavaScript 对象引用。
scrollTo(objectOrName, top)
此函数滚动浏览器,使 objectOrName
小部件可见。您可以使用可选的布尔参数 top
将对象与屏幕的顶部或底部对齐(即传递 true 将对齐到顶部,传递 false 将对齐到底部)。
selectOption(objectOrName, text)
此函数选择在 objectOrName
选择表单元素(可能是一个选择或单选元素)中具有给定 text
的选项。如果该元素是一个多选框,可以在 text
中通过逗号分隔传递要选择的多个选项。
selectOptions(objectOrName, listOfTexts)
此函数从 objectOrName
选择表单元素(可能是一个选择或单选元素)中选择选项。对于 listOfTexts
中的每个条目,将选择具有相应可见文本的对应选项。如果元素仅允许单选,传递给 listOfTexts
的内容只能有一个条目。
selectOptionByValue(objectOrName, value)
此函数选择在 objectOrName
选择表单元素(可能是一个选择或单选元素)中具有给定 value
属性的选项。
selectOptionsByValue(objectOrName, listOfValues)
此函数从objectOrName
选择表单元素(可能是一个选择或单选选择元素)中选择选项。对于listOfValues
中的每个条目,都将选择具有该值属性的相应选项。如果元素仅允许单选,传递的listOfValues
必须只包含一个条目。
sendEvent(eventName, objectOrName, x, y, modifierState, button)
此函数将类型为eventName
的事件发送到objectOrName
元素。必须为以下其中一个:
"mouseup"
"mousedown"
"mouseover"
"mouseout"
"mousemove"
"click"
"pointerover"
"pointerenter"
"pointerdown"
"pointermove"
"pointerup"
"pointercancel"
"pointerout"
"pointerleave"
x
和y
参数是相对objectOrName
的事件发生坐标。目前的modifierState
参数被忽略,但对于它,应该总是传递一个值为 0 的值。button
必须是以下之一:1
(左按钮)、2
(右按钮)或 4
(中按钮)。
Boolean setContext(context)
注意:除非您禁用了标签支持,否则此函数已被弃用。考虑通过一个引用浏览器标签的容器属性扩展现有对象名,以便在您想要查找的对象处发生查找。如果您已使用setContext
选择网页中的特定帧进行对象查找,考虑使用接受浏览器标签和上下文名称的重载Boolean setFrameContext(browserTab, frameName)。
此函数使指定的context
成为活动窗口。此上下文被用作查找对象名称的首选窗口。这意味着后续的所有对象查找都会在新的活动窗口的上下文中首先执行,并且只有在没有找到对象时才会继续在其他已知的上下文中查找。上下文字符串是页面的“基本位置”——这包括用于精确识别页面(例如,如果页面实际上是框架或iframe元素)的任何父位置。窗口的位置是由在URL中加载的HTML(或php、jsp、asp)文件创建的。因此,例如,“http://yourserver.com/path/to/file.html?parameter=value”,上下文将仅仅是“file.html”。如果窗口的URL没有“file.html”这样的文件名,例如“http://yourserver.com/path/?parameter=value”,则Squish将简单地假设名称为“index.html”。此外,如果有多种上下文具有相同的文件名,则会在上下文中添加一个数字。这是通过在数字周围使用角度括号来完成的,所以如果在上面的例子中您打开了两个“file.html”页面的窗口,则第二个窗口将使用“file.html<2>”作为上下文名称。您可以通过使用HTML_Array contextList()函数在任何时候访问已知的窗口,以及String contextOf(window)检索它们的名称来很容易地看到Squish为给定窗口创建和期望的上下文。(参见,HTML_Array contextList(),String contextOf(window),String currentContext(),Boolean setFrameContext(browserTab, frameName),waitForContextExists(context)。)
此函数如果在无法找到上下文名称时将抛出一个可捕获的脚本错误。您可以通过文件 etc/webwrapper.ini
中的 ThrowErrorOnUnknownContextNames
设置来更改此行为。如果该设置设置为 false,此函数将在找到并激活给定的框架上下文名称时简单返回 true,否则返回 false。
setFocus(objectOrName)
此函数将输入焦点设置在 objectOrName
元素上。
Boolean setFrameContext(browserTab, frameName)
Boolean setFrameContext(frameName)
对于使用框架或 iframes 的网页,此函数可以用来指定当在由 browserTab
引用的选项卡内部查找对象时应使用名为 frameName
的框架作为当前上下文。此当前上下文定义了查找对象名称的首选窗口;因此,所有跟随它的对象查找都将首先在指定的框架中搜索对象。如果没有找到对象,则查找将回退到搜索所有其他框架以及顶级页面。`frameName` 使用点分隔的层次结构来标识所需的框架。名称以网页中最顶层的框架开始,使用该框架的 name 属性或 id 属性。接下来的步骤(如果需要)应该是顶层框架内框架的 name 或 id。按照这种方案,可以到达嵌套帧的任何层级。例如,考虑一个包含名为 leftframe 和 rightframe 的两个框架的页面,左侧框架中有一个 id 为 maincontent 的 iframe。为了将查找上下文设置为这个内嵌 iframe,你应该将 "leftframe.maincontent" 作为 frameName
使用。除了这种方案之外,还可以使用 Squish 在多属性和层次化名称中生成的上下文信息。这种上下文信息使用略微不同的格式,其中框架的名称为 "FRAME",后跟一个数字。该数字表示特定页面中框架列表中的给定框架编号,从 1 开始计数。使用上面的例子再次说明,你可以使用 "FRAME1.FRAME1" 作为左侧框架中 iframe 的名称。如果右侧框架本身有 2 个子框架,你将使用 "FRAME2.FRAME1" 和 "FRAME2.FRAME2" 分别访问此方案中的这两个子框架。(另请参阅,HTML_Array contextList()、String currentContext()、Boolean setContext(context) 和 waitForContextExists(context)。)
此函数如果在无法找到上下文名称时将抛出一个可捕获的脚本错误。您可以通过文件 etc/webwrapper.ini
中的 ThrowErrorOnUnknownContextNames
设置来更改此行为。如果该设置设置为 false,此函数将在找到并激活给定的框架上下文名称时简单返回 true,否则返回 false。
注意:如果未指定 browserTab
,则调用将始终使用最初加载的标签,即使当前活动的是其他标签。如果测试涉及多个浏览器标签或窗口,这可能导致意外的行为,因此我们建议在新脚本中始终指定 browserTab
参数。
setText(objectOrName, text)
此函数将 objectOrName
可编辑表单元素(可以是文本或 textarea 元素)的文本设置为给定的 text
。(与此相比,typeText(objectOrName, text) 函数模拟将文本输入到表单元素中。)
此函数的特定用途是自动化上传字段。用于选择文件以上传的表单字段可以通过 setText 自动化。用于上传文件的输入字段名称应作为 objectOrName
使用,而文件的绝对路径应作为 text
传递。setText 调用将透明地处理平台和浏览器之间的文件选择。
记录上传字段上的 setText 调用通常无法获取磁盘上文件的绝对路径,因为浏览器出于安全原因阻止访问此信息。请确保相应地调整绝对路径参数。
startBrowser(url)
startBrowser(url, timeout)
startBrowser()
startBrowser(timeout)
该函数启动浏览器,如果指定 - 则加载由 url
参数指定的网站。如果在启动或加载页面期间出现错误,将引发错误。如果在浏览器正在运行时调用该函数,也会引发错误。可以使用 Boolean isBrowserOpen() 函数查询浏览器是否正在运行。
该函数接受一个可选的 timeout
参数,单位为毫秒。Squish for Web 将等待指定的时间以便浏览器启动并加载给定的 URL。时间结束后,将生成一个错误。如果未指定此参数,将使用最大启动超时值。
toggleExpandable(objectOrName)
此函数点击 objectOrName
可展开的部分标题网页元素(如果 objectOrName
不是类型为 HTML_ExpandableSectionHeader 类,将引发异常)。点击将导致可展开部分的状态变为展开(如果没有展开)或关闭(如果已经展开)。此函数相当于点击鼠标到可展开部分标题上,但不需要(可能不可靠)的坐标。
可展开部分有时被称为“手风琴”或“工具箱”。(另请参阅 可展开部分标题支持。)
typeText(objectOrName, text)
此函数将指定的 text
(仿佛用户使用了键盘)输入到 objectOrName
可编辑元素中。(比较此与setText(objectOrName, text) 函数,该函数用于程序性地设置文本和 textarea 表单元素的文本。)
注意:对于支持此功能的浏览器类型,将自动激活包含HTML元素的BrowserTab(或WebView)对象。此规则的例外是所有通过“基于Chromium的应用程序”选项自动化的浏览器。
waitForContextExists(context)
注意:除非您已禁用选项卡支持,否则该函数已弃用。请考虑使用 Object waitForObject(objectOrName) 与标识特定选项卡的 realname 等待该选项卡,或者使用 Boolean waitFor(condition) 与 Boolean hasFrameContext(browserTab, context) 来等待特定的框架出现
此函数等待直到指定的 context
已被加载并可访问。该 context
是浏览器中显示的特定网页的 URL - 该网页本身可能通过使用框架、iframe 和类似元素包含其自己的页面层级。(另请参阅,HTML_Array contextList(),String currentContext(),Boolean setFrameContext(browserTab, frameName),Boolean setContext(context),和 waitForContextExists(context)。)
如果等待指定的时间找不到上下文名称,此函数将抛出一个可捕获的脚本错误。您可以使用文件 etc/webwrapper.ini
中的 ThrowErrorOnUnknownContextNames
设置更改此行为。如果设置设置为 false,则此函数如果给定的框架上下文名称可以找到和激活则返回 true,否则返回 false。
waitForObjectItem(objectOrName, row, column)
waitForObjectItem(objectOrName, row, column, timeoutMSec)
等待 objectOrName
对象可访问(即存在、可见且启用),并包含由 row
和 column
标识的项目。
函数在失败时引发一个(可捕获的)LookupError
异常,即超时时。
函数最多等待 20000 毫秒(默认),或者等待 timeoutMSec
参数中指定的毫秒数。
此函数仅适用于以下类型的对象
支持的(由 HTML_CustomItemView 类处理的)对象示例是 GWT 和 SmartGWT 表。
uninstallEventHandler(eventName, handlerFunctionNameOrReference)
此函数移除先前使用 installEventHandler(eventName, handlerFunctionNameOrReference) 安装的事件处理器。
浏览器对象
该对象的方法提供有关正在使用的浏览器的信息。
注意:当使用针对使用 QtWebKit 模块的 Qt 版本的应用程序时,此对象的名称为 SquishBrowserInfo
以避免与应用程序本身提供的对象发生冲突。因此,在用于 Qt 版本的测试脚本中,应使用 SquishBrowserInfo.name
代替 Browser.name
。此规则同样适用于此对象提供的其他函数和属性。
String Browser.name()
此函数以字符串值返回正在用于运行测试的浏览器名称。常见浏览器的值为:
"浏览器在移动设备上"
– 移动设备上的浏览器"Firefox"
– Mozilla Firefox"Google Chrome"
– Google Chrome"基于 Chromium 的应用程序(使用 CEF、Electron、nw.js 等。)"
– 基于 Chromium 的应用程序"Microsoft Internet Explorer"
– Microsoft Internet Explorer"Microsoft Edge"
– Microsoft Edge"Opera"
– Opera"其他浏览器"
– 其他浏览器"Safari"
– Safari
String Browser.majorVersion()
此函数以整数值返回正在用于运行测试的浏览器的版本号。
Type Browser.type()
此函数以数字值返回正在用于运行测试的浏览器的类型。返回的类型值应与以下变量之一(每个表示相应的浏览器)进行比较:
Browser.Firefox
– FirefoxBrowser.InternetExplorer
– Internet Explorer(Microsoft)Browser.Edge
– Microsoft EdgeBrowser.GoogleChrome
– Google ChromeBrowser.ChromiumBased
– 基于 Chromium 的应用程序(使用 CEF、Electron、nw.js 等。)Browser.Mozilla
– MozillaBrowser.Safari
– Safari(Apple)Browser.Proxy
– 代理
示例
function main() { // ... if (Browser.type() == Browser.InternetExplorer) { test.log("Using Internet Explorer!") } // ... }
BrowserTab 类
此类提供了浏览器窗口中标签的 API。可以使用具有如下多属性名称的标签标识 {type='BrowserTab' title='AddressBook'}
。可以使用严格匹配、通配符匹配或正则表达式匹配在 BrowserTab.title 或 BrowserTab.url 属性上进行匹配。
字符串 BrowserTab.title
此只读属性包含网页浏览器标签的标题。
字符串 BrowserTab.url
此属性包含网页浏览器标签的URL。更改此属性为不同的URL将在该浏览器标签中加载指定的URL,并等待标签被挂载。挂载成功的等待时间受squishserver配置中指定的应用程序启动时间(或AUTTimeout)限制。如果您需要更多的超时控制,请考虑使用BrowserTab.setUrl(url, timeout)。
BrowserTab.close()
此函数关闭浏览器中的标签,如果它是最后一个标签,则还可能关闭窗口。在调用此函数后,访问同一对象的其他属性将引发错误。
BrowserTab.setUrl(url, timeout)
此函数将标签中的URL更改为指定的url
,并等待新页面被Squish挂载。等待时间可以使用timeout
参数指定,且必须以毫秒为单位。
此函数作为替代BrowserTab.url属性的方案提供,在这种情况下,超时应该被明确指定而不是使用URL属性获取的值。
HTML_Anchor 类
此类提供HTML锚点元素(超链接)的API。此类继承了HTML_Object 类。
HTML_Anchor.click()
此函数点击此锚点(超链接),就像用户自己点击了一样。
HTML_Array 类
此类代表JavaScript数组,例如由HTML_Array HTML_Document.getElementsByTagName(tagName)等网页函数返回的数组。此类继承了HTML_Object 类。
对象 HTML_Array.at(index)
此函数返回数组的index
位置上的元素。有效的索引位置范围是0到array.length - 1
。
int HTML_Array.length
此只读属性包含数组中的元素数量。如果数组为空,则此值为0。
HTML_Button 类
此类提供HTML按钮和提交输入元素的API。此类继承了HTML_ButtonBase 类,该类继承了HTML_FormElement 类,该类又继承了HTML_Object 类。
HTML_Button.submit()
对于普通按钮,这等同于调用HTML_ButtonBase.click()。对于提交按钮,这将调用按钮的表单的提交操作。
HTML_ButtonBase 类
这是所有HTML输入按钮元素(如,按钮、提交、单选按钮、复选框和图像)的基类,并提供了它们共有的API。此类继承了HTML_FormElement 类,该类继承了HTML_Object 类。
HTML_ButtonBase.click()
点击此按钮(或复选框、图像等),就像用户点击它一样。一些子类允许指定键盘修饰符和元素被点击的确切位置。
String HTML_ButtonBase.value
该属性以字符串形式存储此按钮(或复选框、图像等)的值。
HTML_CheckBox 类
此类提供 HTML 复选框输入元素的 API。该类继承自 HTML_ButtonBase 类,HTML_ButtonBase 类继承自 HTML_FormElement 类,HTML_FormElement 类继承自 HTML_Object 类。
Boolean HTML_CheckBox.checked
该属性如果复选框被选中则保存 true
,否则保存 false
。
HTML_CheckBox.click()
HTML_CheckBox.click(modifierState)
HTML_CheckBox.click(modifierState, x, y)
点击此复选框,就像用户点击它一样。所有参数都是可选的。请参阅 Web 对象 API 函数参数,了解哪些值对于 modifierState
是有效的。其中 x
和 y
是相对复选框的点击坐标。
HTML_CalendarEvent 类
此类提供支持日历事件的 API,它提供了四个有用的属性。该类继承自 HTML_Object 类。
注意,对于类型为 DateTime 类型 的属性,时间分辨率为最近的分钟(即,秒数始终为零)。
String HTML_CalendarEvent.description
该读/写属性以字符串形式保存事件描述(可能为空)。
DateTime HTML_CalendarEvent.endDateTime
该读/写属性持有事件何时结束的 DateTime 类型。
DateTime HTML_CalendarEvent.startDateTime
该读/写属性持有事件何时开始的 DateTime 类型。
String HTML_CalendarEvent.title
该读/写属性持有事件标题的字符串。
另请参阅 日历事件支持。
HTML_CalendarView 类
此类提供支持 Web 日历小部件的 API,包括一个有用的属性和两个方法。该类继承自 HTML_CustomItemView 类,HTML_CustomItemView 类继承自 HTML_FormElement 类,HTML_FormElement 类继承自 HTML_Object 类。
DateTime HTML_CalendarView.date
该读/写属性以 DateTime 类型 存储日历的当前日期。注意,时间分辨率为最近的分钟(即,秒数始终为零)。
int HTML_CalendarView.numVisibleEvents()
返回在视图中 可见 的 HTML_CalendarEvent 类 的数量。
HTML_CalendarEvent HTML_CalendarView.visibleEventAt(index)
返回视图中可见的HTML_CalendarEvent 类的索引为 index
的对象。
另请参阅,日历视图支持。
HTML_ColorField 类
该类提供了用于 HTML 颜色选择器的 API。此类继承自 HTML_Object 类。
String HTML_ColorField.fieldName
此只读属性包含该字段的标签文本,如果有的话。
Boolean HTML_ColorField.isEnabled
此读写属性包含颜色选择器是否启用的状态。
String HTML_ColorField.rgbColor
此读写属性包含颜色选择器的颜色,以 HTML 格式化字符串 (#RRGGBB) 的形式表示;请参阅 chooseColor(objectOrName, htmlRGBvalue) 函数。
HTML_CustomButton 类
该类提供支持高级定制的按钮(例如,使用 <div>
或 <span>
HTML 元素创建的按钮)的 Web 工具包的 API。API 与 HTML_Button 类 提供的 API 非常相似。此类继承自 HTML_CustomButtonBase 类(提供该类的大部分属性)和 HTML_Object 类。
另请参阅,按钮支持。
String HTML_CustomButton.value
此读写属性包含按钮的工具包特定数据值。(这与 HTML_CustomButtonBase.text 属性不同。)
HTML_CustomButtonBase 类
该类提供了一个支持使用高级定制的按钮的 Web 工具包的抽象 API(例如,使用 <div>
或 <span>
HTML 元素创建的按钮)的抽象 API。API 与 HTML_Button 类 提供的 API 非常相似。此类继承自 HTML_Object 类。
另请参阅,按钮支持。
Boolean HTML_CustomButtonBase.disabled
此读写属性表示按钮是否禁用(true)或启用(false)。
Boolean HTML_CustomButtonBase.showText
此读写属性表示按钮显示文本(true)或图像(false)。
String HTML_CustomButtonBase.text
此读写属性包含在 showText
属性为 true 的情况下显示在按钮上的文本;否则它包含一个空字符串。
String HTML_CustomButtonBase.tooltip
此读写属性包含按钮的工具提示文本(可能为空)。
Boolean HTML_CustomButtonBase.visible
此只读属性指示按钮是否在网页中可见。
HTML_CustomComboBox 类
这个类旨在支持在扩展中实现高度定制的组合框(例如,使用 <div>
或 <span>
元素而不是标准 <select>
元素)的 Web 工具包。该 API 与 HTML_Select 类 类似的 API。这个类继承了 HTML_FormElement 类,而 HTML_FormElement 类又继承了 HTML_Object 类。
有关如何添加对自定义组合框的支持,请参阅 组合框支持。
布尔值 HTML_CustomComboBox.hasOption(option)
此函数返回组合框是否包含指定的 option
。
字符串 HTML_CustomComboBox.selectedOption
这个读写属性包含当前选中选项的文本。
HTML_CustomCheckbox 类
这个类代表一个定制的复选框—例如,可以使用 <div>
或 <span>
标签创建的复选框,而不是使用 <button>
元素。这个类继承了 HTML_Object 类。(参见 复选框支持。)
布尔值 HTML_CustomCheckbox.checked
这个读写属性包含复选框是否被选中。
HTML_CustomItem 类
这个类提供一个抽象的项 API,以便访问自定义项视图中支持的任何项类型(HTML_CustomItemView 类。)此类继承自 HTML_Object 类。(有关如何使用此 API 支持Squish作为标准不支持的定制项视图小部件的信息,请参阅如何设置复杂小部件的支持。)
以下是 HTML_CustomItem
类的方法和属性的快速链接
HTML_CustomItem HTML_CustomItem.childItem()
HTML_CustomItem HTML_CustomItem.childItem(column)
返回一个对为此项的第一个子项(HTML_CustomItem 类)的引用,如果没有,则返回 0。
column
是可选的(并且并非所有项都支持它),但如果指定(且受支持),则在给定的 column
中有此项的第一个子项,则返回此子项;否则返回 0。
整数 HTML_CustomItem.column
这个只读属性包含项的列,或者如果此属性不受相关 HTML 扩展支持,则返回 -1。
HTML_CustomItem HTML_CustomItem.findItem(row, column)
此函数返回对给定 row
和 column
的子项的引用。如果找不到项或扩展不支持此功能,则函数返回 0。
HTML_Object HTML_CustomItem.itemHandle()
此函数返回对当前项句柄的引用(类型为HTML_Object 类),如果此项没有句柄,则返回0。
HTML_CustomItemView HTML_CustomItem.itemView()
此函数返回包含此项的视图(类型为HTML_CustomItemView 类)。
HTML_CustomItem HTML_CustomItem.nextSibling()
HTML_CustomItem HTML_CustomItem.nextSibling(column)
返回当前项的下一个“兄弟”项的引用(类型为HTML_CustomItem 类);如果没有“兄弟”项,则返回0。
column
是可选的(并且并非所有项都支持它),但如果指定(并且受到支持),则函数返回在下一行的给定column
中的项;如果没有,则返回0。
int HTML_CustomItem.numRows
此只读属性表示当前项有多少直系子项(适用于树形视图中的项)。如果项没有子项(或项不在树形视图中),则值为0;如果是支持的HTML扩展不支持此属性,则值为-1。
这是一个合成属性,有关更多信息,请参阅Web Objects中的合成属性。
Boolean HTML_CustomItem.open
此属性表示如果此项是打开的(即展开的——在这种情况下,此项的子项将可见);否则它包含false。
如果此属性设置为true
,则打开(展开)此项,使其所有子项都可见。如果此属性设置为false
,则关闭(折叠)此项,使其所有子项都隐藏。
HTML_CustomItem HTML_CustomItem.parentItem()
HTML_CustomItem HTML_CustomItem.parentItem(column)
返回当前项父项的引用(类型为HTML_CustomItem 类);如果没有父项,返回0,即此项是根项。
column
是可选的(并且并非所有项都支持它),但如果指定(并且受到支持),则如果存在给定column
的父项,则返回该项的父项;否则返回0。
String HTML_CustomItem.realType
此只读属性表示API包装的实际(即真实)类型名称的字符串。名称可能是视图的类型名称,而不是项的类型名称,具体取决于实现。(携带Squish的示例返回视图的类型名称。)
返回的类型名称可能是“gwttree”、“itmilltree”、“dojotree”等。
int HTML_CustomItem.row
此只读属性表示项的行。对于树形视图中的项,该行相对于顶级项的视图或相对于项的父项。对于不在树形视图中的项,它是视图中项的行。如果此属性不受相关HTML扩展支持,则值为-1。
Boolean HTML_CustomItem.selected
该属性在选中该项时保持 true
;否则保持 false
。
如果将此属性设置为 true
,则选中该项。如果将此属性设置为 false
,则取消选中该项。
String HTML_CustomItem.text
此只读属性以字符串形式持有项目的文本。
如果扩展提供了 itemText
函数,则返回该函数的返回值;否则返回项目的 innerText
属性的值。
HTML_CustomItemView 类
此类提供了一种抽象的项视图 API,以访问任何受支持的项视图,即任何具有专用支持的 DHTML/AJAX/JS 项视图小部件。此类继承自 HTML_FormElement 类,而 HTML_Object 类 继承自它。(请参阅 如何设置对复杂小部件的支持 了解如何使用此 API 支持Squish作为标准不支持的自定义项视图小部件。)
项视图中的项的 API 由 HTML_CustomItem 类 提供。
在以下许多方法中使用的 itemText
用来标识相关项。在Squish提供的示例中,itemText
总是项的文本字符串。
以下是一些快速链接到 HTML_CustomItemView
类的方法和属性
HTML_CustomItem HTML_CustomItemView.childItem()
HTML_CustomItem HTML_CustomItemView.childItem(column)
返回视图的第一个项的引用(类型为 HTML_CustomItem 类);如果视图为空,则返回 0。
column
是可选的(并非所有视图都支持),但如果指定(且受支持),则返回视图在给定的 column
中的第一个子项,如果存在的话;否则返回 0。
HTML_CustomItemView.clickHandle(itemName)
点击名为 itemName
的项的展开/折叠处理。
HTML_CustomItemView.clickItem(itemName)
HTML_CustomItemView.clickItem(row, column)
此函数点击具有给定 itemName
文本或给定 row
和 column
的项。如果找不到项或扩展不支持此函数(某些仅支持 itemName
版本),则此函数不进行任何操作。
String HTML_CustomItemView.columnCaption(column)
返回给定 column
的视图的标题。
HTML_CustomItemView.doubleClickItem(itemName)
HTML_CustomItemView.doubleClickItem(itemName, modifierState)
双击名为 itemName
的项目。请参阅 Web 对象 API 函数参数,了解可选的 modifierState
的有效值。
HTML_CustomItem HTML_CustomItemView.findItem(itemName)
HTML_CustomItem HTML_CustomItemView.findItem(row, column)
此函数返回对给定 itemName
或在给定的 row
和 column
的项目的引用(类型为 HTML_CustomItem 类)。如果找不到项目或扩展不支持此函数(一些只支持 itemName
版本),则函数返回 0。
Boolean HTML_CustomItemView.hasItem(itemName)
如果视图有名为 itemName
的项目,则该函数返回 true
;否则返回 false
。
Boolean HTML_CustomItemView.isOpen(itemName)
如果视图有名为 itemName
的项目,并且该项目是打开的(即其任何子项都是可见的),则该函数返回 true
;否则返回 false
。
Boolean HTML_CustomItemView.isSelected(itemName)
如果视图有名为 itemName
的项目,并且该项目被选中,则该函数返回 true
;否则返回 false
。
int HTML_CustomItemView.numColumns
此只读属性保存视图显示的列数。
这是一个合成属性,有关更多信息,请参阅Web Objects中的合成属性。
int HTML_CustomItemView.numRows
此只读属性保存视图显示的行数。在树型视图中,这是顶级子项的数量。并非所有扩展都支持此属性,在这种情况下,其值是 -1。
这是一个合成属性,有关更多信息,请参阅Web Objects中的合成属性。
String HTML_CustomItemView.realType
此只读属性保存此 API 包装的实际(即真实)类型的类型名作为字符串。
类型名可能是“gwttree”、“itmilltree”、“dojotree”等。
HTML_CustomRadioButton Class
此类表示自定义单选按钮——例如,使用 <div>
或 <span>
标签创建的,而不是使用 <button>
元素。此类继承自 HTML_Object 类。(另请参阅 单选按钮支持。)
Boolean HTML_CustomRadioButton.selected
此可读写属性保存单选按钮是否选中(勾选)。
HTML_CustomSelectList Class
此类表示自定义多选列表——例如,使用