如何在Shirates中使用相对选择器 - 第1部分 -
#android #ios #appium #testautomation

本文是如何使用Shirates的介绍,一种移动测试自动化工具。

选择器表达式

您可以使用选择器表达式在屏幕上选择元素。这是简单而有力的表达(请参阅How to use selector expression in Shirates)。

相对选择器

在屏幕上选择一个元素后,您可能需要相对围绕该元素获取另一个元素。在这种情况下,您可以使用Shirates的相对选择器

相对选择器(基于方向)

您可以相对地获得窗口小部件在右下方,左下,上方。

direction

相对选择器

相对选择器 描述
:右 朝正确方向的小部件
: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

direction right android

使用正确的选择器(iOS)

来自paltictext1

direction right ios

搜索范围

右选择器在基本元素的顶部和底部之间的正确方向搜索。

search range

材料

您可以从[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报告

HTML-Report

规格报告

Spec-Report


了解更多信息

参见Relative selector(Direction based)


结论

在屏幕上选择了一个元素后,您可以使用Shirates的相对选择器

您可以获得窗口小部件(输入,标签,图像,按钮,开关),相对右侧,下方,左,上方。