本文是如何使用Shirates的介绍,一种移动测试自动化工具。
选择器表达式
您可以使用选择器表达式在屏幕上选择元素。这是简单而有力的表达(请参阅How to use selector expression in Shirates)。
相对选择器
在屏幕上选择一个元素后,您可能需要相对围绕该元素获取另一个元素。在这种情况下,您可以使用Shirates的相对选择器。
相对选择器(基于方向)
您可以相对地获得窗口小部件在右下方,左下,上方。
相对选择器
相对选择器 | 描述 |
---|---|
:右 | 朝正确方向的小部件 |
:RightInput | 在正确方向上输入 |
:RightLabel | 标签在正确的方向 |
:righimage | 沿正确方向的图像 |
:RightButton | 按钮正确的方向 |
:Rightswitch | 沿正确方向开关 |
:下面 | 窗口小部件以下方向 |
:下输入 | 在下面的下方输入 |
:以下标签 | 在下面的标签 |
:下图 | 在下面的图像 |
:下方 | 在下方的按钮 |
:下面开关 | 在下方的下方开关 |
:左 | 左方向的小部件 |
:leftinput | 左方向输入 |
:左行 | 在左侧的标签 |
:左图 | 左方向的图像 |
:leftbutton | 左向的按钮 |
:左道 | 左方向开关 |
:上面 | 窗口小部件以上方向 |
:上图 | 在上述方向上输入 |
:Abovelabel | 在上述方向上标签 |
:上图 | 图像在上述方向 |
:topper button | 在上方方向上的按钮 |
:Aboveswitch | 在上述方向上开关 |
附加窗口小部件类型(输入,标签,图像,按钮,开关)。
小部件
内置的小部件信息如下。
小部件 | 对应(Android) | 对应(ios) |
---|---|---|
标签 | android.widget.textview | xcuielementtypestatictext |
输入 | android.widget.edittext | xcuielementtypetextfield xcuielementtypesecuretextfield |
图像 | android.widget.imageview | xcuielementtypeimage |
按钮 | android.widget.button android.widget.imagebutton android.widget.checkbox |
XcuielementTypebutton |
开关 | android.widget.switch | xcuielementtypeswitch |
小部件 | (以上所有) | (以上所有) |
选择器命令示例
示例 | 描述 |
---|---|
<text1>:right |
选择文本为“ text1”的第一个元素,然后在正确方向上选择第一个小部件。 |
<text1>:right(2) |
选择文本为“ text1”的第一个元素,然后在正确的方向上选择第二个小部件。这相当于<text1>:right(pos=2) 或<text1>:right([2])
|
<text1>:rightSwitch |
选择文本为“ text1”的第一个元素,然后在正确方向上选择第一个开关。 |
<text1>:right(text2) |
选择文本为“ text1”的第一个元素,然后选择第一个小部件,该文本是正确方向的“ text2”。 |
<text1>:right:belowButton |
选择文本为“ text1”的第一个元素,然后在正确方向上选择第一个小部件,然后在下面的下方选择第一个按钮。 |
使用正确的选择器(Android)
来自TextView1
使用正确的选择器(iOS)
来自paltictext1
搜索范围
右选择器在基本元素的顶部和底部之间的正确方向搜索。
材料
您可以从[https://github.com/wave1008/shirates-samples-selectors]获得完整的示例项目。
selectWithDirectionTest
import org.junit.jupiter.api.Order
import org.junit.jupiter.api.Test
import shirates.core.driver.commandextension.*
import shirates.core.testcode.UITest
class SelectWithDirectionTest : UITest() {
@Test
@Order(10)
fun selectWithDirection() {
scenario {
case(1) {
condition {
it.restartApp()
}.action {
it.select("<Battery>:below")
}.expectation {
it.textIs("100%")
}
}
case(2) {
action {
it.select("<Battery>:leftImage")
}.expectation {
it.classIs("android.widget.ImageView")
}
}
case(3) {
action {
it.select("<Battery>:above(2)")
}.expectation {
it.textIs("Notifications")
}
}
case(4) {
condition {
it.tap("Search settings")
}.action {
it.select("<@Back>:right")
}.expectation {
it.classIs("android.widget.EditText")
}
}
}
}
}
测试结果
HTML报告
规格报告
了解更多信息
参见Relative selector(Direction based)
结论
在屏幕上选择了一个元素后,您可以使用Shirates的相对选择器。
您可以获得窗口小部件(输入,标签,图像,按钮,开关),相对右侧,下方,左,上方。