我正在尝试使文本形成一个特定的元素。该页面有许多TextViews。所有文本元素都具有相同的resource-id和classname。
因此,driver.findElement()
和所有谷歌搜索方式在这里都行不通。
从该项目复制text属性的唯一方法是使用X,Y坐标。
有什么方法可以获取文本格式的特定坐标?
答案 0 :(得分:0)
您可以这样做,但仍需要driver.findElement..
来xpath
,请尝试:
driver.findElementByXPath("//*[@x='249' and @y='458']").getText();
或
driver.findElementByXPath("//*[@x='249' and @y='458']").getAttribute("attributeName");
确保您的元素具有属性x y
,如下所示:
但是有时用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层次结构