Best Appium-espresso-driver code snippet using android.support.test.espresso.ViewAction.perform
CustomClickAction.kt
Source:CustomClickAction.kt
...17import android.support.test.espresso.core.internal.deps.guava.base.Preconditions.checkNotNull18import android.support.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast19import org.hamcrest.CoreMatchers.allOf20/**21 * Class that holds a copy of Espresso ViewActions.click() and allows to perform22 * clicks on a view with different visibility.23 */24class CustomClickAction @JvmOverloads constructor(private val tapper: Tapper, private val coordinatesProvider: CoordinatesProvider,25 private val precisionDescriber: PrecisionDescriber, rollbackAction: ViewAction? = null) : ViewAction {26 private val rollbackAction: Optional<ViewAction>27 init {28 this.rollbackAction = Optional.fromNullable(rollbackAction)29 }30 override fun getConstraints(): Matcher<View> {31 val standardConstraint = isDisplayingAtLeast(visibility)32 return if (rollbackAction.isPresent) {33 allOf(standardConstraint, rollbackAction.get().constraints)34 } else {35 standardConstraint36 }37 }38 override fun perform(uiController: UiController, view: View) {39 val coordinates = coordinatesProvider.calculateCoordinates(view)40 val precision = precisionDescriber.describePrecision()41 var status: Tapper.Status = Tapper.Status.FAILURE42 var loopCount = 043 // Native event injection is quite a tricky process. A tap is actually 244 // seperate motion events which need to get injected into the system. Injection45 // makes an RPC call from our app under test to the Android system server, the46 // system server decides which window layer to deliver the event to, the system47 // server makes an RPC to that window layer, that window layer delivers the event48 // to the correct UI element, activity, or window object. Now we need to repeat49 // that 2x. for a simple down and up. Oh and the down event triggers timers to50 // detect whether or not the event is a long vs. short press. The timers are51 // removed the moment the up event is received (NOTE: the possibility of eventTime52 // being in the future is totally ignored by most motion event processors).53 //54 // Phew.55 //56 // The net result of this is sometimes we'll want to do a regular tap, and for57 // whatever reason the up event (last half) of the tap is delivered after long58 // press timeout (depending on system load) and the long press behaviour is59 // displayed (EG: show a context menu). There is no way to avoid or handle this more60 // gracefully. Also the longpress behavour is app/widget specific. So if you have61 // a seperate long press behaviour from your short press, you can pass in a62 // 'RollBack' ViewAction which when executed will undo the effects of long press.63 while (status != Tapper.Status.SUCCESS && loopCount < 3) {64 try {65 status = tapper.sendTap(uiController, coordinates, precision)66 } catch (re: RuntimeException) {67 throw PerformException.Builder()68 .withActionDescription(this.description)69 .withViewDescription(HumanReadables.describe(view))70 .withCause(re)71 .build()72 }73 // ensures that all work enqueued to process the tap has been run.74 uiController.loopMainThreadForAtLeast(ViewConfiguration.getPressedStateDuration().toLong())75 if (status == Tapper.Status.WARNING) {76 if (rollbackAction.isPresent) {77 rollbackAction.get().perform(uiController, view)78 } else {79 break80 }81 }82 loopCount++83 }84 if (status == Tapper.Status.FAILURE) {85 throw PerformException.Builder()86 .withActionDescription(this.description)87 .withViewDescription(HumanReadables.describe(view))88 .withCause(RuntimeException(String.format("Couldn't "89 + "click at: %s,%s precision: %s, %s . Tapper: %s coordinate provider: %s precision " +90 "describer: %s. Tried %s times. With Rollback? %s", coordinates[0], coordinates[1],91 precision[0], precision[1], tapper, coordinatesProvider, precisionDescriber, loopCount,...
ViewActions.kt
Source:ViewActions.kt
...19 * Perform action of waiting for a specific view id.20 *21 *22 * E.g.:23 * onView(isRoot()).perform(waitId(R.id.dialogEditor, Sampling.SECONDS_15));24 * @param viewId25 * *26 * @param millis27 * *28 * @return29 */30 fun waitId(viewId: Int, millis: Long): ViewAction {31 return object : ViewAction {32 override fun getConstraints(): Matcher<View> {33 return isRoot()34 }35 override fun getDescription(): String {36 return "wait for a specific view with id <$viewId> during $millis millis."37 }38 override fun perform(uiController: UiController, view: View) {39 uiController.loopMainThreadUntilIdle()40 val startTime = System.currentTimeMillis()41 val endTime = startTime + millis42 val viewMatcher = withId(viewId)43 do {44 for (child in TreeIterables.breadthFirstViewTraversal(view)) {45 // found view with required ID46 if (viewMatcher.matches(child)) {47 return48 }49 }50 uiController.loopMainThreadForAtLeast(50)51 } while (System.currentTimeMillis() < endTime)52 // timeout happens53 throw PerformException.Builder().withActionDescription(this.description).withViewDescription(HumanReadables.describe(view)).withCause(TimeoutException()).build()54 }55 }56 }57 /**58 * Perform action of waiting for a specific time. Useful when you need59 * to wait for animations to end and Espresso fails at waiting.60 *61 *62 * E.g.:63 * onView(isRoot()).perform(waitAtLeast(Sampling.SECONDS_15));64 * @param millis65 * *66 * @return67 */68 fun waitAtLeast(millis: Long): ViewAction {69 return object : ViewAction {70 override fun getConstraints(): Matcher<View> {71 return any(View::class.java)72 }73 override fun getDescription(): String {74 return "wait for at least $millis millis."75 }76 override fun perform(uiController: UiController, view: View) {77 uiController.loopMainThreadUntilIdle()78 uiController.loopMainThreadForAtLeast(millis)79 }80 }81 }82 fun swipeTop(): ViewAction {83 return GeneralSwipeAction(Swipe.FAST, GeneralLocation.BOTTOM_CENTER, GeneralLocation.TOP_CENTER, Press.FINGER)84 }85 fun swipeBottom(): ViewAction {86 return GeneralSwipeAction(Swipe.FAST, GeneralLocation.TOP_CENTER, GeneralLocation.BOTTOM_CENTER, Press.FINGER)87 }88 /**89 * Perform action of waiting until UI thread is free.90 *91 *92 * E.g.:93 * onView(isRoot()).perform(waitUntilIdle());94 * @return95 */96 fun waitUntilIdle(): ViewAction {97 return object : ViewAction {98 override fun getConstraints(): Matcher<View> {99 return any(View::class.java)100 }101 override fun getDescription(): String {102 return "wait until UI thread is free"103 }104 override fun perform(uiController: UiController, view: View) {105 uiController.loopMainThreadUntilIdle()106 }107 }108 }109 fun withCustomConstraints(action: ViewAction, constraints: Matcher<View>): ViewAction {110 return object : ViewAction {111 override fun getDescription(): String {112 return action.description113 }114 override fun getConstraints(): Matcher<View> {115 return constraints;116 }117 override fun perform(uiController: UiController, view: View) {118 action.perform(uiController, view)119 }120 }121 }122}...
NavigationViewActions.kt
Source:NavigationViewActions.kt
...52 * @return a [ViewAction] that navigates on a menu item53 */54 fun navigateTo(menuItemId: Int): ViewAction {55 return object : ViewAction {56 override fun perform(uiController: UiController, view: View) {57 val navigationView = view as NavigationView58 val menu = navigationView.menu59 if (null == menu.findItem(menuItemId)) {60 throw PerformException.Builder()61 .withActionDescription(this.description)62 .withViewDescription(HumanReadables.describe(view))63 .withCause(RuntimeException(getErrorMessage(menu, view)))64 .build()65 }66 menu.performIdentifierAction(menuItemId, 0)67 uiController.loopMainThreadUntilIdle()68 }69 private fun getErrorMessage(menu: Menu, view: View): String {70 val NEW_LINE = System.getProperty("line.separator")71 val errorMessage = StringBuilder("Menu item was not found, " + "available menu items:")72 .append(NEW_LINE)73 for (position in 0 until menu.size()) {74 errorMessage.append("[MenuItem] position=").append(position)75 val menuItem = menu.getItem(position)76 if (menuItem != null) {77 val itemTitle = menuItem.title78 if (itemTitle != null) {79 errorMessage.append(", title=").append(itemTitle)80 }...
RecyclerViewUtils.kt
Source:RecyclerViewUtils.kt
...41 override fun getConstraints(): Matcher<View> {42 return allOf( isAssignableFrom(RecyclerView::class.java), isDisplayed() )43 }44 override fun getDescription():String {45 return ("actionOnItemAtPosition performing ViewAction: " + this.viewAction.description + " on item at position: " + this.position)46 }47 override fun perform(uiController:UiController, view:View) {48 val recyclerView = view as RecyclerView49 ScrollToPositionViewAction(this.position).perform( uiController, view)50 uiController.loopMainThreadUntilIdle()51 val targetView = recyclerView.getChildAt(this.position).findViewById<View>(this.viewId)52 if (targetView == null)53 {54 throw PerformException.Builder().withActionDescription(this.toString())55 .withViewDescription(56 HumanReadables.describe(view))57 .withCause(IllegalStateException(58 "No view with id "59 + this.viewId60 + " found at position: "61 + this.position))62 .build()63 }64 else65 {66 this.viewAction.perform(uiController, targetView)67 }68 }69 }70 class ScrollToPositionViewAction (71 private val position : Int )72 : ViewAction {73 override fun getConstraints():Matcher<View> {74 return allOf( isAssignableFrom(RecyclerView::class.java), isDisplayed() )75 }76 override fun getDescription():String {77 return "scroll RecyclerView to position: " + this.position78 }79 override fun perform(uiController:UiController, view:View) {80 val recyclerView = view as RecyclerView81 recyclerView.scrollToPosition(this.position)82 }83 }84 fun withRecyclerView( recyclerViewId : Int) : RecyclerViewMatcher {85 return RecyclerViewMatcher(recyclerViewId)86 }87}...
RecyclerViewItemInteractions.kt
Source:RecyclerViewItemInteractions.kt
...25 @IdRes private val viewId: Int,26 private val viewAction: ViewAction) : ViewAction {27 override fun getConstraints(): Matcher<View> = createConstraints()28 override fun getDescription(): String {29 return "actionOnItemAtPosition performing ViewAction: ${viewAction.description} on item at position: $position"30 }31 override fun perform(uiController: UiController, view: View) {32 val recyclerView = view as RecyclerView33 ScrollToPositionViewAction(position).perform(uiController, view)34 uiController.loopMainThreadUntilIdle()35 val targetView = recyclerView.getChildAt(position).apply {36 if (viewId == rootViewId) {37 rootView38 } else {39 findViewById<View>(viewId)40 }41 }42 if (targetView == null) {43 throw Builder()44 .withActionDescription(this.toString())45 .withViewDescription(HumanReadables.describe(view))46 .withCause(IllegalStateException("No view with id $viewId found at position: $position"))47 .build()48 } else {49 viewAction.perform(uiController, targetView)50 }51 }52 }53 private class AssertionOnItemViewAtPosition(private val position: Int,54 @IdRes private val viewId: Int,55 private val viewAssertion: ViewAssertion) : ViewAssertion {56 override fun check(view: View?, noViewFoundException: NoMatchingViewException?) {57 val recyclerView = view as RecyclerView58 actionOnItemViewAtPosition(position, viewId, ViewActions.scrollTo())59 val childAt = recyclerView.getChildAt(position)60 val targetView = childAt.findViewById<View>(viewId)61 ?: throw Builder().withCause(noViewFoundException).build()62 viewAssertion.check(targetView, noViewFoundException)63 }64 }65 private class ScrollToPositionViewAction(private val position: Int) : ViewAction {66 override fun getConstraints(): Matcher<View> = createConstraints()67 override fun getDescription(): String {68 return "scroll RecyclerView to position: $position"69 }70 override fun perform(uiController: UiController, view: View) {71 val recyclerView = view as RecyclerView72 recyclerView.scrollToPosition(position)73 }74 }75 private fun createConstraints() = Matchers.allOf(76 ViewMatchers.isAssignableFrom(RecyclerView::class.java), ViewMatchers.isDisplayed())77}...
InstrumentedTest.kt
Source:InstrumentedTest.kt
...23 @Rule @JvmField var rule = ActivityTestRule(InstrumentedActivity::class.java)24 @Test25 @Throws(Exception::class)26 fun revealSimple() {27 onView(withId(R.id.container)).perform(replaceFragment(Test1Fragment()))28 onView(withId(R.id.progressBar)).perform(delay(2000))29 }30 @Test31 @Throws(Exception::class)32 fun revealProgramatically() {33 onView(withId(R.id.container)).perform(replaceFragment(Test2Fragment()))34 onView(withId(R.id.progressBar)).perform(delay(4000))35 }36 @Test37 @Throws(Exception::class)38 fun revealTo() {39 onView(withId(R.id.container)).perform(replaceFragment(Test3Fragment()))40 onView(withId(R.id.progressBar)).perform(delay(2000))41 }42 fun replaceFragment(fragment: Fragment): ViewAction = object : ViewAction {43 override fun getDescription() = "attaching fragment " + fragment.javaClass.simpleName44 override fun getConstraints() = isAssignableFrom(FrameLayout::class.java)45 override fun perform(uiController: UiController?, view: View) {46 rule.activity.supportFragmentManager47 .beginTransaction()48 .replace(R.id.container, fragment)49 .commit()50 }51 }52 fun delay(millis: Long): ViewAction = object : ViewAction {53 override fun getDescription() = "delay for " + millis54 override fun getConstraints() = isAssignableFrom(ProgressBar::class.java)55 override fun perform(uiController: UiController, view: View) {56 view as ProgressBar57 object : CountDownTimer(millis, 100) {58 override fun onTick(millisUntilFinished: Long) {59 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {60 view.setProgress((view.max * millisUntilFinished / millis).toInt(), true)61 } else {62 view.progress = (view.max * millisUntilFinished / millis).toInt()63 }64 }65 override fun onFinish() {66 view.visibility = View.GONE67 }68 }.start()69 uiController.loopMainThreadForAtLeast(millis)...
CustomViewActions.kt
Source:CustomViewActions.kt
...9import org.hamcrest.Matchers.allOf10object CustomViewActions {11 fun getTotalItemsFromRecyclerAdapter(resId: Int): Int {12 val counts = IntArray(1) { -1 }13 onView(withId(resId)).perform(object : ViewAction {14 override fun getDescription(): String {15 return "Getting recyclerview adapter's item count"16 }17 override fun getConstraints(): Matcher<View> {18 return isAssignableFrom(RecyclerView::class.java)19 }20 override fun perform(uiController: UiController?, view: View?) {21 if (view is RecyclerView) {22 val count = view?.adapter?.itemCount23 if (count != null)24 counts[0] = count25 }26 }27 })28 return counts[0]29 }30 fun recyclerScrollTo(position: Int): ViewAction {31 return object : ViewAction {32 override fun getConstraints(): Matcher<View> {33 //just checking whether thew view is recyclerview and is displayed34 return allOf<View>(isAssignableFrom(RecyclerView::class.java), isDisplayed())35 }36 override fun getDescription(): String {37 return "recyclerScrollto:"38 }39 override fun perform(uiController: UiController, view: View) {40 val recyclerView = view as RecyclerView41 recyclerView?.scrollToPosition(position)42 }43 }44 }45 fun clickRecyclerItem( withId: Int): ViewAction {46 return object : ViewAction {47 override fun getDescription(): String {48 return "Performing click on recycler view item "49 }50 override fun getConstraints(): Matcher<View> {51 return allOf<View>(isAssignableFrom(View::class.java), isDisplayed())52 }53 override fun perform(uiController: UiController?, view: View?) {54 view?.findViewById<View>(withId)?.performClick()55 }56 }57 }58}...
CustomViewAction.kt
Source:CustomViewAction.kt
...29 }30 override fun getDescription(): String {31 return "Click child view ${withId(viewId)}"32 }33 override fun perform(uiController: UiController, view: View) {34 val targetView = view.findViewById<View>(viewId)35 clickAction.perform(uiController, targetView)36 }37 }38 }39 fun getText(viewId: Int, stringHolder: ArrayList<String>): ViewAction {40 return object : ViewAction {41 override fun getConstraints(): Matcher<View> {42 return isAssignableFrom(TextView::class.java)43 }44 override fun getDescription(): String {45 return "Get text from TextView"46 }47 override fun perform(uiController: UiController, view: View) {48 val textView = view.findViewById<TextView>(viewId)49 stringHolder.add(textView.text.toString())50 }51 }52 }53 }54}...
perform
Using AI Code Generation
1public static ViewAction clickChildViewWithId(final int id) {2return new ViewAction() {3public Matcher<View> getConstraints() {4return isAssignableFrom(View.class);5}6public String getDescription() {7return "Click on a child view with specified id.";8}9public void perform(UiController uiController, View view) {10View v = view.findViewById(id);11v.performClick();12}13};14}15public static ViewAction clickOnViewWithId(final int id) {16return new ViewAction() {17public Matcher<View> getConstraints() {18return isAssignableFrom(View.class);19}20public String getDescription() {21return "Click on a view with specified id.";22}23public void perform(UiController uiController, View view) {24View v = view.findViewById(id);25v.performClick();26}27};28}29public static ViewAction clickOnViewWithText(final String text) {30return new ViewAction() {31public Matcher<View> getConstraints() {32return isAssignableFrom(View.class);33}34public String getDescription() {35return "Click on a view with specified text.";36}37public void perform(UiController uiController, View view) {38View v = view.findViewWithTag(text);39v.performClick();40}41};42}43public static ViewAction clickOnViewWithDescription(final String description) {44return new ViewAction() {45public Matcher<View> getConstraints() {46return isAssignableFrom(View.class);47}48public String getDescription() {49return "Click on a view with specified content description.";50}51public void perform(UiController uiController, View view) {52View v = view.findViewWithTag(description);53v.performClick();54}55};56}57public static ViewAction clickOnViewWithIdAndText(final int id, final String text) {58return new ViewAction() {59public Matcher<View> getConstraints() {60return isAssignableFrom(View.class);61}62public String getDescription() {63return "Click on a view with specified id and text.";64}65public void perform(UiController uiController, View view) {66View v = view.findViewById(id);67if (v instanceof TextView) {68TextView tv = (TextView) v;
perform
Using AI Code Generation
1public static ViewAction performAction(final ViewAction viewAction) {2return new ViewAction() {3public Matcher<View> getConstraints() {4return viewAction.getConstraints();5}6public String getDescription() {7return viewAction.getDescription();8}9public void perform(UiController uiController, View view) {10viewAction.perform(uiController, view);11}12};13}14onView(withId(R.id.your_button_id))15.perform(performAction(click()));16}17In this article, we will learn how to create a custom font in Android. Custom fonts are one of the most important things to make your app look different from others. So, let’s get started. First of all, you need to create a new Android project. Then, create a new folder in the app/src/main/assets/ directory. Name it as fonts. Now, add your font in the fonts directory. In my case, I have added the font named as ‘Roboto-Regular.ttf’. Now, go to the strings.xml file and add the following line of code. android:typeface="sans" Now, go to the AndroidManifest.xml file and add the following line of code. android:theme="@style/Theme.AppCompat.Light.NoActionBar" Now, go to the activity_main.xml file and add the following line of code. android:fontFamily="sans-serif" Now, go to the MainActivity.java file and add the following line of code. Typeface face = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Regular.ttf"); Now, run the app and you will see the output as shown in the screenshot below. I hope this helps you to create a custom font in Android. Happy coding!18In this article, we will learn how to create a custom font in Android. Custom fonts are one of the most important things to make your app look different from others. So, let’s get started. First of all, you need to create a new Android project. Then, create a new folder in the app/src/main/assets/ directory. Name it as fonts. Now, add your font in the fonts directory. In my case, I have added the font named as ‘Roboto-Regular.ttf’. Now, go to the strings.xml file and add the following line of code. android:typeface="sans" Now, go to the AndroidManifest.xml file and add the following line of code
perform
Using AI Code Generation
1public class ViewActions {2 public static ViewAction perform(final ViewAction action) {3 return new ViewAction() {4 public Matcher<View> getConstraints() {5 return action.getConstraints();6 }7 public String getDescription() {8 return action.getDescription();9 }10 public void perform(UiController uiController, View view) {11 action.perform(uiController, view);12 }13 };14 }15 public static ViewAction performWithDelay(final ViewAction action, final long delay) {16 return new ViewAction() {17 public Matcher<View> getConstraints() {18 return action.getConstraints();19 }20 public String getDescription() {21 return action.getDescription();22 }23 public void perform(UiController uiController, View view) {24 try {25 Thread.sleep(delay);26 } catch (InterruptedException e) {27 e.printStackTrace();28 }29 action.perform(uiController, view);30 }31 };32 }33 public static ViewAction performWithDelay(final ViewAction action, final long delay, final TimeUnit timeUnit) {34 return new ViewAction() {35 public Matcher<View> getConstraints() {36 return action.getConstraints();37 }38 public String getDescription() {39 return action.getDescription();40 }41 public void perform(UiController uiController, View view) {42 try {43 Thread.sleep(timeUnit.toMillis(delay));44 } catch (InterruptedException e) {45 e.printStackTrace();46 }47 action.perform(uiController, view);48 }49 };50 }51}52ViewInteraction view = onView(allOf(withId(R.id.button1), isDisplayed()));53view.perform(ViewActions.perform(click()));54view.perform(ViewActions.performWithDelay(click(), 1000));55view.perform(ViewActions.performWithDelay(click(), 1, TimeUnit.SECONDS));56ViewInteraction view = onView(allOf(withId(R.id.button1), isDisplayed()));57view.perform(ViewActions.perform(click()));58view.perform(ViewActions.performWithDelay(click(), 1000));59view.perform(ViewActions.performWithDelay(click(), 1, TimeUnit.SECONDS));60ViewInteraction view = onView(allOf(withId(R.id.button1),
perform
Using AI Code Generation
1public static ViewAction performClick() {2 return new ViewAction() {3 public Matcher<View> getConstraints() {4 return isEnabled();5 }6 public String getDescription() {7 return "performing click on view";8 }9 public void perform(UiController uiController, View view) {10 view.performClick();11 }12 };13 }14public static ViewAction performClick() {15 return new ViewAction() {16 public Matcher<View> getConstraints() {17 return isEnabled();18 }19 public String getDescription() {20 return "performing click on view";21 }22 public void perform(UiController uiController, View view) {23 view.performClick();24 }25 };26 }27public static ViewAction performClick() {28 return new ViewAction() {29 public Matcher<View> getConstraints() {30 return isEnabled();31 }32 public String getDescription() {33 return "performing click on view";34 }35 public void perform(UiController uiController, View view) {36 view.performClick();37 }38 };39 }40public static ViewAction performClick() {41 return new ViewAction() {42 public Matcher<View> getConstraints() {43 return isEnabled();44 }45 public String getDescription() {46 return "performing click on view";47 }48 public void perform(UiController uiController, View view) {49 view.performClick();50 }51 };52 }53public static ViewAction performClick() {54 return new ViewAction() {55 public Matcher<View> getConstraints() {56 return isEnabled();57 }58 public String getDescription() {59 return "performing click on view";60 }61 public void perform(UiController uiController, View view) {62 view.performClick();63 }64 };65 }
perform
Using AI Code Generation
1ViewAction action = new ViewAction() {2 public Matcher<View> getConstraints() {3 return ViewMatchers.isAssignableFrom(TextView.class);4 }5 public String getDescription() {6 return "Change text color";7 }8 public void perform(UiController uiController, View view) {9 TextView textView = (TextView) view;10 textView.setTextColor(Color.RED);11 }12};13onView(withId(R.id.textview)).perform(action);14onView(withId(R.id.textview)).perform(new ViewAction() {15 public Matcher<View> getConstraints() {16 return ViewMatchers.isAssignableFrom(TextView.class);17 }18 public String getDescription() {19 return "Change text color";20 }21 public void perform(UiController uiController, View view) {22 TextView textView = (TextView) view;23 textView.setTextColor(Color.RED);24 }25});26onView(withId(R.id.textview)).check(new ViewAssertion() {27 public void check(View view, NoMatchingViewException noViewFoundException) {28 TextView textView = (TextView) view;29 textView.setTextColor(Color.RED);30 }31});32onView(withId(R.id.textview)).check(new ViewAssertion() {33 public void check(View view, NoMatchingViewException noViewFoundException) {34 TextView textView = (TextView) view;35 textView.setTextColor(Color.RED);36 }37});38onView(withId(R.id.textview)).perform(new ViewAction() {39 public Matcher<View> getConstraints() {40 return ViewMatchers.isAssignableFrom(TextView.class);41 }42 public String getDescription() {43 return "Change text color";44 }45 public void perform(UiController uiController, View view) {46 TextView textView = (TextView) view;47 textView.setTextColor(Color.RED);48 }49});50ViewAction action = new ViewAction() {51 public Matcher<View> getConstraints() {52 return ViewMatchers.isAssignableFrom(TextView.class);53 }54 public String getDescription() {
perform
Using AI Code Generation
1public class ViewActions {2public static ViewAction perform(final ViewAction viewAction) {3return new ViewAction() {4public Matcher<View> getConstraints() {5return viewAction.getConstraints();6}7public String getDescription() {8return viewAction.getDescription();9}10public void perform(UiController uiController, View view) {11viewAction.perform(uiController, view);12}13};14}15}16public class ViewActions {17public static ViewAction perform(ViewAction viewAction) {18return new ViewAction() {19public Matcher<View> getConstraints() {20return viewAction.getConstraints();21}22public String getDescription() {23return viewAction.getDescription();24}25public void perform(UiController uiController, View view) {26viewAction.perform(uiController, view);27}28};29}30}31public class ViewActions {32public static ViewAction perform(ViewAction viewAction) {33return new ViewAction() {34public Matcher<View> getConstraints() {35return viewAction.getConstraints();36}37public String getDescription() {38return viewAction.getDescription();39}40public void perform(UiController uiController, View view) {41viewAction.perform(uiController, view);42}43};44}45}46public class ViewActions {47public static ViewAction perform(ViewAction viewAction) {48return new ViewAction() {49public Matcher<View> getConstraints() {50return viewAction.getConstraints();51}52public String getDescription() {53return viewAction.getDescription();54}55public void perform(UiController uiController, View view) {56viewAction.perform(uiController, view);57}58};59}60}61public class ViewActions {62public static ViewAction perform(ViewAction viewAction) {63return new ViewAction() {64public Matcher<View> getConstraints() {65return viewAction.getConstraints();66}67public String getDescription() {68return viewAction.getDescription();69}70public void perform(UiController uiController, View view) {71viewAction.perform(uiController, view);72}73};74}75}76public class ViewActions {77public static ViewAction perform(ViewAction viewAction) {78return new ViewAction() {
perform
Using AI Code Generation
1ViewAction action = new ViewAction() {2public Matcher<View> getConstraints() {3return ViewMatchers.isAssignableFrom(TextView.class);4}5public String getDescription() {6return "Click on a child view with specified id";7}8public void perform(UiController uiController, View view) {9View v = view.findViewById(R.id.text_view);10ViewActions.click().perform(uiController, v);11}12};13ViewActions.perform(action);14ViewAction action = new ViewAction() {15public Matcher<View> getConstraints() {16return ViewMatchers.isAssignableFrom(TextView.class);17}18public String getDescription() {19return "Click on a child view with specified id";20}21public void perform(UiController uiController, View view) {22View v = view.findViewById(R.id.text_view);23ViewActions.click().perform(uiController, v);24}25};26ViewActions.perform(action);
perform
Using AI Code Generation
1ViewInteraction appCompatButton = onView( allOf( withId(R.id.button), withText("Button"), childAtPosition( allOf( withId(R.id.constraintLayout), childAtPosition( withClassName(is("android.widget.LinearLayout")), 0)), 1), isDisplayed())); appCompatButton.perform(click());2ViewInteraction appCompatButton2 = onView( allOf( withId(R.id.button2), withText("Button2"), childAtPosition( allOf( withId(R.id.constraintLayout), childAtPosition( withClassName(is("android.widget.LinearLayout")), 0)), 2), isDisplayed())); appCompatButton2.perform(click());3ViewInteraction appCompatButton3 = onView( allOf( withId(R.id.button3), withText("Button3"), childAtPosition( allOf( withId(R.id.constraintLayout), childAtPosition( withClassName(is("android.widget.LinearLayout")), 0)), 3), isDisplayed())); appCompatButton3.perform(click());4ViewInteraction appCompatButton4 = onView( allOf( withId(R.id.button4), withText("Button4"), childAtPosition( allOf( withId(R.id.constraintLayout), childAtPosition( withClassName(is("android.widget.LinearLayout")), 0)), 4), isDisplayed())); appCompatButton4.perform(click());5ViewInteraction appCompatButton5 = onView( allOf( withId(R.id.button5), withText("Button5"), childAtPosition( allOf( withId(R.id.constraintLayout), childAtPosition( withClassName(is("android.widget.LinearLayout")), 0)), 5), isDisplayed())); appCompatButton5.perform(click());6ViewInteraction appCompatButton6 = onView( allOf( withId(R.id.button6), withText("Button6"), childAtPosition( allOf( withId(R.id.constraintLayout), childAtPosition( withClassName(is("android.widget.LinearLayout")), 0)), 6), isDisplayed())); appCompatButton6.perform(click());7ViewInteraction appCompatButton7 = onView( all
perform
Using AI Code Generation
1public class CustomViewActions {2public static ViewAction performCustomAction() {3return new ViewAction() {4@Override public Matcher<View> getConstraints() {5return ViewMatchers.isAssignableFrom(View.class);6}7@Override public String getDescription() {8return “Performing custom action”;9}10@Override public void perform(UiController uiController, View view) {11}12};13}14}15onView(ViewMatchers.withId(R.id.button)).perform(CustomViewActions.performCustomAction());16public class CustomViewActions {17public static ViewAction performCustomAction() {18return new ViewAction() {19@Override public Matcher<View> getConstraints() {20return ViewMatchers.isAssignableFrom(View.class);21}22@Override public String getDescription() {23return “Performing custom action”;24}25@Override public void perform(UiController uiController, View view) {26}27};28}29}30onView(ViewMatchers.withId(R.id.button)).perform(CustomViewActions.performCustomAction());31onView(ViewMatchers.withId(R.id.button)).perform(new ViewAction() {32@Override public Matcher<View> getConstraints() {33return ViewMatchers.isAssignableFrom(View.class);34}35@Override public String getDescription() {36return “Performing custom action”;37}38@Override public void perform(UiController uiController, View view) {39}40});
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!