Appium Android如何使用TEXT值点击

时间:2018-01-31 10:30:06

标签: java android appium

我想通过让Appium点击歌曲名称来播放一首歌。有没有一个代码可以让我通过使用TEXT字段来点击任何元素?我不能在这里使用资源ID字段,因为稍后会有多首歌曲。我尝试使用By.xpath("//android.widget.EditText[@text='"+song name+"']");,但这不起作用。

enter image description here

3 个答案:

答案 0 :(得分:1)

xpath中的类名错误。

根据我在uiautomatorviewer上看到的内容,应该是以下内容

setOnUserSelect {
    PersonEditor(it).openModal()
}

答案 1 :(得分:1)

找到解决方案。我必须在我的测试中编写以下代码:

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);

现在我可以通过在XPath中编写歌曲名称来使用TEXT值,如下所示:

By.xpath("//*[@text='" + element + "']");

此处元素是UIAutomatiorViewer中显示的文本值。

答案 2 :(得分:0)

如果@bsk回答不起作用。这可能是因为新的换行......

你可以试试这个吗?

By.xpath("//android.widget.TextView[contains(@text, 'Ishq De Fanniyar (Female)')]");

使用@ resource-id也不是一个坏习惯......

By.xpath("//android.widget.TextView[@resource-id='com.xefyr.ridez:id/tv_song_title' and contains(@text, 'Ishq De Fanniyar (Female)')]");