gpt4 book ai didi

android - 当许多在层次结构中时,Espresso 匹配第一个元素

转载 作者:IT老高 更新时间:2023-10-28 22:21:32 25 4
gpt4 key购买 nike

我正在尝试编写一个 espresso 函数来匹配 espresso 根据我的函数找到的第一个元素,即使找到多个匹配项也是如此。

例如:我有一个包含项目价格的单元格的 ListView 。我希望能够将货币转换为加元并验证商品价格是否为加元。

我正在使用这个功能:

    onView(anyOf(withId(R.id.product_price), withText(endsWith("CAD"))))
.check(matches(
isDisplayed()));

这会引发 AmbiguousViewMatcherException。

在这种情况下,我不在乎有多少或几个单元格显示 CAD,我只是想验证它是否显示。有没有办法让 espresso 在遇到符合参数的对象时立即通过此测试?

最佳答案

您应该能够使用以下代码创建一个仅匹配第一项的自定义匹配器:

private <T> Matcher<T> first(final Matcher<T> matcher) {
return new BaseMatcher<T>() {
boolean isFirst = true;

@Override
public boolean matches(final Object item) {
if (isFirst && matcher.matches(item)) {
isFirst = false;
return true;
}

return false;
}

@Override
public void describeTo(final Description description) {
description.appendText("should return first matching item");
}
};
}

关于android - 当许多在层次结构中时,Espresso 匹配第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32387137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com