我如何从ID中提取文本?
在我的测试中,
我检查我登陆的每个页面的标题文本。
例如,我可以将文本与“登录”(例如R.id.toolbar_text
)相匹配,查看它是否通过或失败。 但是,我想知道它是否失败,我在R.id.toolbar_text
对象中有什么文本。
在Espresso Android中可以使用getText()
选项吗?
我如何从ID中提取文本?
试试这个(kotlin例子):
val toolbar: ViewInteraction = onView(withId(R.id.toolbar_text)) fun getText(viewInteraction: ViewInteraction): String? { val stringHolder = arrayOf(null) viewInteraction.perform(object : ViewAction { override fun getConstraints() = isAssignableFrom(TextView::class.java) override fun getDescription() = "Get text from View: ${stringHolder[0]}" override fun perform(uiController: UiController, view: View) { val tv = view as TextView stringHolder[0] = tv.text.toString() } }) return stringHolder[0] } val text = getText(toolbar)
下面是Java中getText()的等效实现:
public static String getText(final Matcher matcher) { try { final String[] stringHolder = {null}; onView(matcher).perform(new ViewAction() { @Override public Matcher getConstraints() { return isAssignableFrom(TextView.class); } @Override public String getDescription() { return "get text"; } @Override public void perform(UiController uiController, View view) { TextView tv = (TextView) view; stringHolder[0] = tv.getText().toString(); } }); if (stringHolder[0] == null || stringHolder[0] == "") { fail("no text found"); } return stringHolder[0]; } catch (Exception e) { fail("null found"); return null; } }
- 如何写while循环与在kotlin中的responseInputStream.read – (while((i = responseInputStream.read(byteContainer))
- 内部类inheritanceKotlin
- Android Espresso – 如何查看视图在活动结束前匹配?
- Android Espresso – 如何在所有测试中只运行一次安装程序
- 无法导入AndroidJUnit4和ActivityTestRule
- 使用Espresso的Android仪器测试失败:NoSuchMethodError javax.inject.Provider中的get()
- 咖啡测试Kotlin
- 如何在android expresso的回收站视图下获取完整的文本
- Android Epresso:DatePicker点击确定添加一年而不是验证
- 应用; 曾经使用过不同的AppComponent; 在预先验证期间
- kotlin +特浓咖啡:找不到活动