如何从坐标获取文本属性?

时间:2019-09-15 03:49:46

标签: java appium appium-android

我正在尝试使文本形成一个特定的元素。该页面有许多TextViews。所有文本元素都具有相同的resource-id和classname。 因此,driver.findElement()和所有谷歌搜索方式在这里都行不通。

从该项目复制text属性的唯一方法是使用X,Y坐标。

有什么方法可以获取文本格式的特定坐标?

2 个答案:

答案 0 :(得分:0)

您可以这样做,但仍需要driver.findElement..xpath,请尝试:

driver.findElementByXPath("//*[@x='249' and @y='458']").getText();

driver.findElementByXPath("//*[@x='249' and @y='458']").getAttribute("attributeName");

确保您的元素具有属性x y,如下所示:

property

但是有时用x y查找元素并没有唯一性,而且如果应用程序发生了更改,那么更改也很容易受到影响。

答案 1 :(得分:0)

我找到了解决方法。我们可以使用元素的完整层次结构。通过在父母和孩子之间轻松使用/

像这样:

driver.findElement(By.xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.i[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[2]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android.view.ViewGroup[1]/android.support.v4.view.ViewPager[1]/android.view.ViewGroup[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.support.v7.widget.RecyclerView[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[2]/android.widget.TextView[2]")).getText();

UiAutomator2不显示此XPATH属性。我使用Katalon studio-Mobile Spy查找完整的Xpath层次结构