//Change the 0 with any other number, will be the position of the item clicked.
onView(withId(R.id.a_main_recycler))
.perform(RecyclerViewActions
.actionOnItemAtPosition(0, click()));
但是,如果要单击RecycerView中的随机项怎么办?
使用ActivityTestRule的getActivity()
方法。
您将能够使用findviewbyid()
(就像在任何其他上下文中一样)并处理RecyclerView实例。
示例:
@RunWith(AndroidJUnit4.class)
public class RandomBehaviorTest {
//This rule provides functional testing of a single activity.
@Rule
public ActivityTestRule<MainActivity> mActivityRule =
new ActivityTestRule<>(MainActivity.class);
@Test
public void clickRandomItem() {
//Magic happening
int x = getRandomRecyclerPosition(R.id.a_main_recycler);
onView(withId(R.id.a_main_recycler))
.perform(RecyclerViewActions
.actionOnItemAtPosition(x, click()));
}
private int getRandomRecyclerPosition(int recyclerId) {
Random ran = new Random();
//Get the actual drawn RecyclerView
RecyclerView recyclerView = (RecyclerView) mActivityRule
.getActivity().findViewById(recyclerId);
//If the RecyclerView exists, get the item count from the adapter
int n = (recyclerView == null)
? 1
: recyclerView.getAdapter().getItemCount();
//Return a random number from 0 (inclusive) to adapter.itemCount() (exclusive)
return ran.nextInt(n);
}
}
> 我想根据里面的变量文本'job#'单击特定的回收器视图。 但无法执行相同的操作,因为我不知道应该单击的确切位置。 回收器视图的位置不断变化。尝试下面的代码,但它点击静态位置'6' recyclerView=onView(allOf(withId(r.id.recycler_view),issplayed()));recyclerview.perform(actionOnItemAtPositi
我试着用“浓缩咖啡”写简单的测试 但我有个错误: 我正在尝试不同的框架进行测试,对我来说是最好的,但如果有人能帮助修复这个错误,我将非常感激
当我尝试点击图像按钮时,我在android上的espresso UI测试有一个问题: 我有以下布局: 在我的应用程序中,如下所示:
null 动画/转换被禁用,但这不会阻止CircularProgressLayout动画化。 我尝试,但即使这样,在第一次单击和第二次单击之间也要等待2秒。 我还试图滥用作为黑客来确认退出应用程序。这确实有效,但这是一个黑客。我只想让浓缩咖啡点击两次。 有什么建议如何使浓缩咖啡点击两次而不等待动画?
在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。 以下是来自FragWebView的示例代码: 我从我的主要活动中传递打开webview的意图是: 请让我知道如何解决这个问题。 问候
我有一个自定义的,根据设计,它不是完全可见的,所以当我执行单击操作时,我会得到以下错误: 按钮的一小部分在屏幕外(即它被裁剪在顶部),可能12%的按钮在屏幕外。这是设计的,不可能滚动或执行任何视图操作来使其可见。有谁知道如何克服这个90%的限制?