我正在使用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();
答案 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来查找元素。