我有一个浓缩咖啡测试来验证正在显示的对话框。它按下一个按钮来打开对话框,并应通过单击对话框的正按钮来关闭它。该对话框可以正常打开,但在两个Samsung设备(Samsung S6 Edge和Samsung S7)上单击对话框的正按钮失败,但在所有其他设备上都可以工作。我尝试了以下解决方案:
按按钮上的文本匹配按钮
onView(withText(R.string.changelog_ok_button)).perform(click())
onView(withId(android.R.id.button1)).perform(click())
这两种解决方案都适用于大多数设备,但三星拒绝执行点击操作,导致以下错误:
android.support.test.espresso.PerformException: Error performing 'single click' on view 'with string from resource id: <2131755113>[changelog_ok_button] value: OK'.
[...]
Caused by: java.lang.RuntimeException: Action will not be performed because the target view does not match one or more of the following constraints:
at least 90 percent of the view's area is displayed to the user.
Target view: "AppCompatButton{id=16908313, res-name=button1, visibility=VISIBLE, width=192, height=144, 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, layout-params=android.widget.LinearLayout$LayoutParams@ab3a33, tag=null, root-is-layout-requested=false, has-input-connection=false, x=666.0, y=12.0, text=OK, input-type=0, ime-target=false, has-links=false}"
最令人困惑的是,当我使用布局检查器时,按钮的ID是
R.id.button1
它的文本也与
R.string.changelog_ok_button
三星对对话框有什么不同的处理方法会导致这种情况吗?有没有人有同样的问题,并找到了解决办法,或有一些想法,我可以让这个工作?