如何使用MobileElement在Appium Android中找到它的兄弟姐妹

时间:2017-10-05 22:04:42

标签: java appium appium-android

我正在使用Appium for Android,我已经知道如何使用scrollIntoView()查找元素。

我的表格是这样的:

(2)TableLayout
    (0)TableRow
        (0)LinearLayout
        (1)LinearLayout
            (0)TextView:Tom
            (1)TextView:OPEN
            (2)TextView:OPEN
    (1)TableRow
        (0)LinearLayout
        (1)LinearLayout
            (0)TextView:Jack
            (1)TextView:OPEN
            (2)TextView:OPEN

正如我上面提到的,我可以使用文本“Tom”和id找到(0)TextView。但是,我想要的是找到(1)TextView并单击它。有没有办法做到这一点?

我正在寻找类似的东西:

MobileElement tom = the (0)TextView I located;
MobileElement target = tom.findElement(__);
target.click();

2 个答案:

答案 0 :(得分:0)

您可以使用xpath尝试此操作。以下是一个例子

//*[@text='Tom']/following-sibling::[1 or 2]

您可能希望参数化上面的文字

答案 1 :(得分:0)

这是我最终做的事情。

由于scrollIntoView()可以向下滚动,直到tom和target都在屏幕上可见,我最终会执行以下操作:

MobileElement tom = scrollToElement(table, name_id, "Tom"); // scrollIntoView()
MobileElement target = driver.findElementByXPath("//*[@text='Tom']/following-sibling::android.widget.TextView[1]");

我使用驱动程序代替tom来查找元素。