Android原生应用-如何在类android.view.view中获取文本

问题描述 投票:1回答:1

我是新手,正在尝试使应用程序自动化。我正在打开一个页面,其中加载了动态文本(例如:A Book),该页面具有以下XML源,

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy index="0" class="hierarchy" rotation="0" width="1080" height="1794">  
  <android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
    <android.view.ViewGroup index="0" package="name" class="android.view.ViewGroup" text="" resource-id="android:id/decor_content_parent" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
      <android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" resource-id="android:id/content" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
        <android.widget.RelativeLayout index="0" package="name" class="android.widget.RelativeLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
          <android.widget.RelativeLayout index="0" package="name" class="android.widget.RelativeLayout" text="" resource-id="name:id/main_reader_layout" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
            <android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" resource-id="name:id/animation_body" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
              <android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" resource-id="name:id/video_view_container" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true" />
              <android.view.View index="1" package="name" class="android.view.View" text="" resource-id="name:id/highlight_link_view" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true" />
              ***<android.view.View index="2" package="name" class="android.view.View" text="" resource-id="name:id/curl_ogl_view" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true" />***
            </android.widget.FrameLayout>
            <android.widget.FrameLayout index="1" package="name" class="android.widget.FrameLayout" text="" resource-id="name:id/bookmark_region" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[972,0][1080,289]" displayed="true" />
            <android.widget.TextView index="2" package="name" class="android.widget.TextView" text="138 of 218" resource-id="name:id/reader_page_info" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,1798][1080,1920]" displayed="true" />
          </android.widget.RelativeLayout>
        </android.widget.RelativeLayout>
      </android.widget.FrameLayout>
    </android.view.ViewGroup>
  </android.widget.FrameLayout>
</hierarchy>

哪里

class="android.view.View" text="" resource-id="name:id/curl_ogl_view"

包含文本。

我正在尝试获取文本,然后将其传递给数组或字符串。请让我知道我是否可以在页面中获取文字。

请找到示例代码,

WebElement viewContainer = (WebElement) driver.findElement(By.id("name:id/curl_ogl_view"));
String getTextfromView = ((WebElement)viewContainer).getText().toString();
System.out.println("length::::"+getTextfromView.length());
System.out.println("length::::"+getTextfromView);

请在运行上面的代码时找到输出,

[[RemoteTestNG]检测到的TestNG版本7.0.0,2020年2月27日,下午1:18:10io.appium.java_client.remote.AppiumCommandExecutor $ 1 lambda $ 0信息:检测到的方言:W3C通过长度:::: 0长度::::通过:texttest

===============================================默认测试

测试运行:1,失败:0,跳过:0

请让我知道是否需要其他信息。

java android selenium selenium-webdriver appium-android
1个回答
0
投票

class =“ android.view.View” text =“” resource-id =“名称:id / curl_ogl_view”

根据您的xmL dom,上一行中提到的类似乎不包含任何文本。尝试找到包含文本的正确元素。也许您可以为完整的dom共享链接或其他内容,这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.