浓缩咖啡执行点击
Posted
技术标签:
【中文标题】浓缩咖啡执行点击【英文标题】:Espresso perform click 【发布时间】:2015-10-03 04:26:21 【问题描述】:我尝试使用“espresso”编写简单的测试
@RunWith(androidJUnit4.class)
@LargeTest
public class EspressoTest
@Rule
public ActivityRule<IntroActivity> mActivityRule = new ActivityRule(IntroActivity.class);
public EspressoTest()
IdlingPolicies.setMasterPolicyTimeout(1000, TimeUnit.SECONDS);
@Test
public void testShouldClickEmailButton()
onView(withText(R.string.in_email)).perform(click());
但我得到了一个错误:
PerformException: Error performing 'single click' on view 'with string from resource id: <2131099761>[in.email] value: Login With Email'.
我正在尝试不同的测试框架,robotium
对我来说是最好的,但如果有人可以帮助解决这个错误,我将非常感激
UPD更详细的日志
原因:java.lang.RuntimeException: Action will not be executed 因为目标视图与以下一项或多项不匹配 约束:至少 90% 的视图区域显示到 用户。目标视图:“DSeparatedButtonid=2131427459, res-name=button_login,可见性=VISIBLE,宽度=622,高度=120, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=333.0, text=使用电子邮件登录, input-type=0, ime-target=false, has-links=false"
我还有一点飞溅动画
【问题讨论】:
Action will not be performed because the target view does not match one or more of the following constraints
你读过这个吗?
@JaredBurrows 是的,我看到了,我有一个上滑按钮动画,但我怎么能等 1 秒呢?我试过 Thread.sleep(1000);等等,但它没有帮助
啊,感谢您更新您的帖子。我认为您使用 Espresso 是对的。看看这个:***.com/questions/21417954/espresso-thread-sleep.
thx,我现在要尝试一下,它真的很奇怪,因为我在机器人中没有遇到这个问题,但是我在模拟器中遇到了像 OOM 这样的片状测试和错误(不是真正的设备),所以我决定迁移到另一个
啊这是不同作者的两个不同框架。这很好,所以当下一个人遇到这个问题时,我们可以搜索这个问题:)
【参考方案1】:
onView 方法仅用于在屏幕上 100% 可见的视图,因此 Espresso 可以正确测试它们。 我的建议是使用 onData 方法来测试视图。 这应该有效:
onData(withText(R.string.in_email)).perform(click());
如果这不是您要寻找的答案,我可以为您提供更多帮助。如果这不起作用,请告诉我。 祝你好运!
【讨论】:
试过但没有用,当我在 firebase 内的物理三星 s7 设备上运行它时它失败了,如果我看到结果视频,屏幕的一部分是黑色的,看起来它被调整了大小视频。【参考方案2】:@RunWith(AndroidJUnit4.class)
@LargeTest
public class EspressoTest
@Rule
public ActivityTestRule<IntroActivity> mActivityRule = new ActivityTestRule(IntroActivity.class);
@Test
public void testShouldClickEmailButton()
mActivityRule.launch(new Intent());
onView(withText(R.string.in_email)).perform(click());
【讨论】:
代码解释总是很受欢迎的。以上是关于浓缩咖啡执行点击的主要内容,如果未能解决你的问题,请参考以下文章