Appium getText() returns android:hint 来自 EditText 的值?

Appium getText() returns android:hint value from EditText?

我刚刚开始研究使用 Appium 来测试原生 Android 应用程序的自动化。在此应用程序中,UI 的 XML 布局包含以下 EditText 控件声明:

<EditText
    android:id="@+id/inputText"
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="0.5"
    android:inputType="text|textMultiLine"
    android:hint="Type or paste text here"
    android:text="" />

应用程序运行时,EditText的文本值显然为空,因此显示提示值("Type or paste text here")。在我的测试用例中,如果我在此 EditText 上调用 getText(),我返回的 return 值不是我期望的空字符串。相反,我取回了 EditText ("Type or paste text here") 的提示值。这是我第一次使用 Appium,所以这可能是预期的行为。但如果是这种情况,如果 getText() return 是提示的值,我如何断言 EditText 的文本值实际上为空?我想我可以断言 getText() 编辑的值 return 等于 "Type or paste text here" 但是如果用户实际输入了那个确切的文本,我怎么知道区别呢?

getText() returns 分配给元素(在您的情况下为 android:hint)的任何值都将在 UI 线程呈现时显示。

在你的情况下断言,提示是一个没有动态配置的文本,所以你可以验证文本

if(element.getText().equals("Type or paste text here"))
  // hint being displayed
else if(element.getText() == "")
 // the text is left empty

现在如果用户可以配置与元素的提示同名。您可能必须为应用程序提供更好的设计以避免这种情况。 Appium 可能只是一种媒介,可以向您提供反馈给应用程序的信息 UI。