[android] [appium]如何点击没有资源ID的元素?

时间:2015-07-27 20:04:02

标签: android appium

我无法弄清楚如何点击登录元素(来自UI Automator): enter image description here

请记住,UI中有多个带有0索引的TextView-s。我可以以某种方式使用其文本("登录")或其唯一的ListView / TextView路径吗?

5 个答案:

答案 0 :(得分:4)

有两种方法可以做到:

首先,试试这个:

driver.findElementByName("SignIn").click();

其次,试试这个:

public void tap(int index){
List<WebElement> li = driver.findElementByClass("PUT YOUR class name");
li.get(0).click();
}

答案 1 :(得分:3)

试试这个,应该有用。

driver.findElement(By.xpath("//android.widget.TextView[@index='0']")).click();

答案 2 :(得分:2)

我不知道您运行的是哪个Android版本,但您可以做的是

1)您可以尝试将内容描述添加到XML元素搜索中。

2)您可以按照文字搜索,例如搜索姓名(&#34;登录&#34;)。

3)您可以使用XPath进行访问。

我建议您设置 Appium Ruby Console ,这样您就可以实时测试命令并查看最适合您的命令。

答案 3 :(得分:2)

在原生的android自动化中,我做了类似的事情,

onData(anything())
.inRoot(withDecorView(not(is(getActivity().getWindow().getDecorView()))))
        .atPosition(0).atPosition(1)
        .perform(click()); //this click item in droplist within droplist

onView(findChildof(withId(R.id.parent_id), 3)).check(matches((isDisplayed()))).perform(click()); //this clicks third child

答案 4 :(得分:2)

试试这个:

driver.findElement(By.xpath("//*[@class='android.widget.TextView' and @index='0']")).click();

driver.findElement(By.name("Sign In")).click();

理想情况下,两者都应该有效。