iOS便利API

注意: iOS便利API仅适用于Squish for iOS版本。

注意: Squish 文档中使用术语 widget 来指代 GUI 对象。macOS 开发者可能更熟悉这个概念的术语 view

以下是 iOS 便利 API 函数的一些快速链接

clearWebObjectCache()

此函数清除 WebView 中对象层次名称的缓存。在网页应用在与交互后移除网页的一些元素,然后使用之前相同的层次名称应该找到不同的对象的情况下,这可能很有用。在这种情况下不清除缓存,则在网站更改内容后搜索层次名称时将从缓存中检索旧对象。然而,缓存对于保持深层层次名称查找的高性能和可扩展性是必要的。

clickObject(objectOrName)

clickObject(objectOrName, x, y)

此函数与 tapObject(objectOrName) 相同。它保留以与旧脚本兼容,但新录制使用 tapObject(objectOrName) 代替。

doubleClick(objectOrName)

doubleClick(objectOrName, x, y)

此函数与 doubleTap(objectOrName) 相同。它保留以与旧脚本兼容。

doubleTap(objectOrName)

doubleTap(objectOrName, x, y)

此函数在指定的 objectOrName 对象上执行双击。

默认情况下,将双击 objectOrName 对象的中心,但可以通过传递相对对象坐标 xy 来自定义此操作。

gesture(objectOrName, touches)

此函数播放手势。指定的 objectOrName 可以指代任何可见且仅用于同步的对象。

指定的 touches 指的是 GestureBuilder 对象,可以通过 readGesture(gesture-file) 检索。

hideKeyboard()

此函数可以隐藏正在显示的屏幕键盘。

installEventHandler(eventName, handlerFunctionName)

此函数安装全局事件处理器。名为 handlerFunctionName 的脚本函数(必须作为字符串传递,而不是作为函数引用,除非是 Python,它也支持传递函数引用),在发生 eventName 类型的事件时将被调用。

eventName 可以是以下任何事件类型的名称

  • "Crash" – 如果 AUT 崩溃时发生
  • "AlertOpened" – 当显示警报时发生

当发生 AlertOpened 事件时,将调用名为 handlerFunctionName 的函数。该函数传递一个参数——打开的警报对象(即类型为 UIAlertView 的对象)。

注意: 在Python脚本中,您可以通过传递实际函数或lambda函数来指定要调用的回调函数。

有关示例,请参阅如何使用事件处理器

注意: `installEventHandler` 函数仅在它被调用后AUT(应用程序)已经启动时才会工作。例如,可以通过使用ApplicationContext startApplication(autName) 函数来启动应用程序。

readGesture(gesture-file)

此函数从测试套件目录中打开一个手势文件,并返回一个GestureBuilder对象。然后可以将此对象传递给gesture(objectOrName, touches)。指定的gesture-file指向文件名。

selectPickerRowInComponent(objectOrName, row, componentIndex)

此函数在指定的objectOrName UIPickerView对象中选择一个项(选择器控件是一个旋转菜单,用户可以选择如日期这样的东西)。

row是要选择的行的基于0的索引位置。而componentIndex是包含该行的组件(或列)的基于0的索引位置。

tapObject(objectOrName)

tapObject(objectOrName, x, y)

此函数在指定的objectOrName小部件上进行点击。

默认情况下,在objectOrName小部件中间点击,但可以通过传递对象相对坐标xy来覆盖默认行为。

touchAndDrag(objectOrName, x, y, dx, dy)

这个函数执行一个拖动手势(也称为滚动手势)。从位于相对于objectOrName小部件的xy位置开始,向右移动dx像素(如果是负数,则向左),并且向下移动dy像素(如果是负数,则向上)。

touchAndHold(objectOrName, duration)

touchAndHold(objectOrName, x, y, duration)

此函数在指定的objectOrName小部件上执行一个点击并保持手势。触摸时间为duration秒(如果您想指定小于一秒的部分,请使用浮点数)。

默认情况下,在objectOrName小部件中间接触,但可以通过传递对象相对坐标xy来覆盖默认行为。

type(objectOrName, text)

此函数将指定的text(就像用户是在使用屏幕键盘输入文本一样)输入到objectOrName可编辑小部件中。如果文本被尖括号<><>包围,它会被解释为特殊键,例如 "<Return>"。输入区分大小写,所以 type(object, "R")type(object, "r") 是不同的。

当前支持以下特殊键

  • "<Return>" – 屏幕键盘上的回车键(根据配置,它不一定被标记为“Return”——它可能被称为“完成”、“搜索”或其他名称,具体取决于使用的 UIReturnKeyType
  • "<Backspace>" – 回退键;用于删除光标左侧的字符

uninstallEventHandler(eventName, handlerFunctionName)

此函数卸载使用 installEventHandler(eventName, handlerFunctionName) 之前安装的事件处理程序。

GestureBuilder

此类型对象存储重放 gesture(objectOrName, touches) 所需的触摸笔迹信息。此类的一个实例由 readGesture(gesture-file) 返回。笔迹由屏幕坐标点、压力和触摸大小定义。

有关如何使用 GestureBuilder 对象操作手势信息的示例,请参阅 如何使用GestureBuilder类

int GestureBuilder.areaWidth

定义此手势的区域宽度。这将是设备或模拟器的屏幕宽度。

int GestureBuilder.areaHeight

定义此手势的区域高度。这将是设备或模拟器的屏幕高度。

所有列在 GestureBuilder 中的 Gesture creationGesture manipulation 部分,都返回 GestureBuilder 对象本身,除非指定不同。

Gesture creation

本节列出了手动创建 GestureBuilder 对象的方法。

GestureBuilder(width, height, unit)

GestureBuilder(xml)

两个创建 GestureBuilder 对象的构造函数。宽度和高度是目标屏幕大小。单位可以是 1 或 2,分别表示毫米或逻辑点。也可以使用常量 GestureBuilder.MilliMeterGestureBuilder.LogicalPoint

第二个构造函数通过传递包含 XML 的字符串来构建 GestureBuilder 对象,该 XML 应与记录的手势文件格式相同。

Object GestureBuilder.addStroke(x, y)

Object GestureBuilder.addStroke(startTime, x, y)

开始一个新笔迹。一个手指或笔从接触屏幕到释放屏幕的整个移动称为一笔迹。触摸下坐标是 (x, y)。对于非第一笔迹,可以使用 startTime 参数指定以毫秒为单位的时间偏移量。笔迹在时间上不能断续,整个手势过程中至少要有一个手指或笔放在屏幕上。最大同时触摸数取决于设备。

Object GestureBuilder.curveTo(duration, controlX, controlY, endX, endy)

Object GestureBuilder.curveTo(duration, control1X, control1Y, control2X, control2Y, endX, endy)

在指定时间的毫秒数内向最新添加的笔迹中添加贝塞尔曲线移动。曲线从最后一次添加的运动的终点坐标开始,如果没有添加到笔迹中,从笔迹的接触点坐标开始。终点坐标由endXendY指定。可以使用一个或两个所谓的控制点。

Object GestureBuilder.lineTo(duration, endX, endy)

在指定时间的毫秒数内向最新添加的笔迹中添加直线移动。直线从最后一次添加的运动的终点坐标开始,如果没有添加到笔迹中,从笔迹的接触点坐标开始。终点坐标由endXendY指定。

Object GestureBuilder.build()

从添加的笔迹和运动创建手势。调用此方法后,不能再添加笔迹或运动。

手势操作

Object GestureBuilder.accelerate(factor)

根据一个系数更改墨迹速度。系数在0.0到1.0之间会减慢手势,大于1.0则会加速。

Object GestureBuilder.rotate(degrees)

Object GestureBuilder.rotate(degrees, originX, originY)

旋转墨迹。参数degrees表示逆时针方向的度数。参数originXoriginY定义旋转操作的起点。如果省略,以区域中心点为起点。

Object GestureBuilder.scale(scale)

Object GestureBuilder.scale(scaleX, scaleY)

Object GestureBuilder.scale(scaleX, scaleY, originX, originY)

更改墨迹的大小。参数scaleX是水平方向的缩放系数,scaleY是垂直方向的缩放系数。originXoriginY定义缩放操作的起点。如果省略,则以区域中心点为起点。如果同时省略scaleY,则在两个方向上进行均匀缩放。

Object GestureBuilder.translate(x, y)

移动墨迹。参数xy指定移动方向。参数x的正值将墨迹向右移动,参数y的正值将墨迹向下移动。

©2024 Qt公司有限。此处包含的文档贡献属于其各自所有者。
此处提供的文档根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行授权。
Qt和相应的标志是芬兰以及全球其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。