Best EarlGrey code snippet using performAction.grey_swipeFastInDirection
GestureTest.m
Source:GestureTest.m  
...116  [self ftr_assertSwipeWorksInAllDirections];117}118- (void)testSwipeOnWindow {119  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]120      performAction:grey_swipeFastInDirection(kGREYDirectionUp)];121  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe up on window")]122      assertWithMatcher:grey_sufficientlyVisible()];123  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]124      performAction:grey_swipeFastInDirection(kGREYDirectionDown)];125  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe down on window")]126      assertWithMatcher:grey_sufficientlyVisible()];127  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]128      performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];129  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe left on window")]130      assertWithMatcher:grey_sufficientlyVisible()];131  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]132      performAction:grey_swipeFastInDirection(kGREYDirectionRight)];133  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe right on window")]134      assertWithMatcher:grey_sufficientlyVisible()];135}136- (void)testSwipeWithLocationForAllDirections {137  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]138      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionUp, 0.25, 0.25)];139  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe up")]140      assertWithMatcher:grey_sufficientlyVisible()];141  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"x:54.0 - y:49.0")]142      assertWithMatcher:grey_sufficientlyVisible()];143  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]144      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionDown, 0.75, 0.75)];145  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe down")]146      assertWithMatcher:grey_sufficientlyVisible()];147  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"x:162.0 - y:147.0")]148      assertWithMatcher:grey_sufficientlyVisible()];149  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]150      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionLeft, 0.875, 0.5)];151  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe left")]152      assertWithMatcher:grey_sufficientlyVisible()];153  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"x:189.0 - y:98.0")]154      assertWithMatcher:grey_sufficientlyVisible()];155  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]156      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionRight, 0.125, 0.75)];157  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe right")]158      assertWithMatcher:grey_sufficientlyVisible()];159  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"x:27.0 - y:147.0")]160      assertWithMatcher:grey_sufficientlyVisible()];161}162- (void)testPinchWorksInAllDirectionsInPortraitMode {163  [self ftr_assertPinchWorksInAllDirections];164}165- (void)testPinchWorksInAllDirectionsInUpsideDownMode {166  [EarlGrey rotateDeviceToOrientation:UIDeviceOrientationPortraitUpsideDown error:nil];167  [self ftr_assertPinchWorksInAllDirections];168}169- (void)testPinchWorksInAllDirectionsInLandscapeLeftMode {170  [EarlGrey rotateDeviceToOrientation:UIDeviceOrientationLandscapeLeft error:nil];171  [self ftr_assertPinchWorksInAllDirections];172}173- (void)testPinchWorksInAllDirectionsInLandscapeRightMode {174  [EarlGrey rotateDeviceToOrientation:UIDeviceOrientationLandscapeRight error:nil];175  [self ftr_assertPinchWorksInAllDirections];176}177#pragma mark - Private178// Asserts that swipe works in all directions by verifying if the swipe gestures are correctly179// recognized.180- (void)ftr_assertSwipeWorksInAllDirections {181  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]182      performAction:grey_swipeFastInDirection(kGREYDirectionUp)];183  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"gesture")]184      assertWithMatcher:grey_text(@"swipe up")];185  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]186      performAction:grey_swipeSlowInDirection(kGREYDirectionDown)];187  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"gesture")]188      assertWithMatcher:grey_text(@"swipe down")];189  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]190      performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];191  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"gesture")]192      assertWithMatcher:grey_text(@"swipe left")];193  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]194      performAction:grey_swipeSlowInDirection(kGREYDirectionRight)];195  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"gesture")]196      assertWithMatcher:grey_text(@"swipe right")];197}198// Asserts that Pinch works in all directions by verifying if the pinch gestures are correctly199// recognized.200- (void)ftr_assertPinchWorksInAllDirections {201  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]202      performAction:grey_pinchFastInDirectionAndAngle(kGREYPinchDirectionOutward,203                                                      kGREYPinchAngleDefault)];204  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"gesture")]...FTRUITableViewTest.m
Source:FTRUITableViewTest.m  
...31                                            grey_kindOfClass([UIButton class]), nil);32  for (int i = 0; i < 5; i++) {33    NSString *labelForRowToDelete = [NSString stringWithFormat:@"Row %d", i];34    [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(labelForRowToDelete)]35        performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];36    [[EarlGrey selectElementWithMatcher:deleteRowMatcher] performAction:grey_tap()];37    [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(labelForRowToDelete)]38        assertWithMatcher:grey_notVisible()];39  }40}41- (void)testSearchActionWithTinyScrollIncrements {42  [[self scrollToCellAtIndex:20 byScrollingInAmounts:20 InDirection:kGREYDirectionDown]43      assertWithMatcher:grey_notNil()];44  [[self scrollToCellAtIndex:0 byScrollingInAmounts:20 InDirection:kGREYDirectionUp]45      assertWithMatcher:grey_notNil()];46  [[self scrollToCellAtIndex:20 byScrollingInAmounts:20 InDirection:kGREYDirectionDown]47      assertWithMatcher:grey_notNil()];48}49- (void)testSearchActionWithLargeScrollIncrements {50  [[self scrollToCellAtIndex:20 byScrollingInAmounts:200 InDirection:kGREYDirectionDown]51      assertWithMatcher:grey_notNil()];52  [[self scrollToCellAtIndex:0 byScrollingInAmounts:200 InDirection:kGREYDirectionUp]53      assertWithMatcher:grey_notNil()];54  [[self scrollToCellAtIndex:20 byScrollingInAmounts:200 InDirection:kGREYDirectionDown]55      assertWithMatcher:grey_notNil()];56}57- (void)testScrollToTop {58  // Scroll down.59  [[self scrollToCellAtIndex:20 byScrollingInAmounts:200 InDirection:kGREYDirectionDown]60      assertWithMatcher:grey_notNil()];61  // Scroll to top.62  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]63      performAction:grey_scrollToContentEdge(kGREYContentEdgeTop)];64  // And verify that we are at the top.65  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]66      assertWithMatcher:[self matcherForScrolledToTop]];67}68- (void)testScrollToTopWithPositiveInsets {69  // Add positive insets using this format {top,left,bottom,right}70  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"insets value")]71      performAction:grey_typeText(@"{100,0,0,0}\n")];72  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"insets toggle")]73      performAction:grey_turnSwitchOn(YES)];74  // Scroll down.75  [[self scrollToCellAtIndex:20 byScrollingInAmounts:200 InDirection:kGREYDirectionDown]76      assertWithMatcher:grey_notNil()];77  // Scroll to top.78  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]79      performAction:grey_scrollToContentEdge(kGREYContentEdgeTop)];80  // And verify that we are at the top.81  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]82      assertWithMatcher:[self matcherForScrolledToTop]];83}84- (void)testScrollToTopWithNegativeInsets {85  // Add negative insets using this format {top,left,bottom,right}86  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"insets value")]87      performAction:grey_typeText(@"{-100,0,0,0}\n")];88  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"insets toggle")]89      performAction:grey_turnSwitchOn(YES)];90  // Scroll down.91  [[self scrollToCellAtIndex:20 byScrollingInAmounts:200 InDirection:kGREYDirectionDown]92      assertWithMatcher:grey_notNil()];93  // Scroll to top.94  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]95      performAction:grey_scrollToContentEdge(kGREYContentEdgeTop)];96  // And verify that we are at the top.97  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]98      assertWithMatcher:[self matcherForScrolledToTop]];99}100- (void)testScrollToTopWhenAlreadyAtTheTopWithoutBounce {101  GREYActionBlock *bounceOff =102      [[GREYActionBlock alloc] initWithName:@"toggleBounces"103                                constraints:grey_kindOfClass([UIScrollView class])104                               performBlock:^BOOL(UIScrollView *scrollView,105                                                  NSError *__strong *error) {106    XCTAssertTrue(scrollView.bounces, @"Bounce must be set or this test is same as"107                                      @" testScrollToTopWhenAlreadyAtTheTopWithBounce");108    scrollView.bounces = NO;109    return YES;110  }];111  // Verify this test with and without bounce enabled by toggling it.112  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]113      performAction:bounceOff];114  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]115      performAction:grey_scrollToContentEdge(kGREYContentEdgeTop)];116  // Verify that top most cell is visible.117  [[EarlGrey selectElementWithMatcher:[self matcherForCellAtIndex:0]]118      assertWithMatcher:grey_sufficientlyVisible()];119}120- (void)testScrollToTopWhenAlreadyAtTheTopWithBounce {121  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]122      performAction:grey_scrollToContentEdge(kGREYContentEdgeTop)];123  // Verify that top most cell is visible.124  [[EarlGrey selectElementWithMatcher:[self matcherForCellAtIndex:0]]125      assertWithMatcher:grey_sufficientlyVisible()];126}127- (void)testTableViewVisibleWhenScrolled {128  [[[[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]129      assertWithMatcher:grey_sufficientlyVisible()]130      performAction:grey_swipeFastInDirection(kGREYDirectionUp)]131      performAction:grey_swipeFastInDirection(kGREYDirectionUp)]132      assertWithMatcher:grey_sufficientlyVisible()];133}134- (void)testFrameworkSynchronizesWithScrolling {135  MatchesBlock matchesNotScrolling = ^BOOL(UIScrollView *element) {136    return !element.dragging && !element.decelerating;137  };138  DescribeToBlock describe = ^void(id<GREYDescription> description) {139    [description appendText:@"scrollViewNotScrolling"];140  };141  id<GREYMatcher> matchers =142      grey_allOf(grey_kindOfClass([UIScrollView class]),143                 [[GREYElementMatcherBlock alloc] initWithMatchesBlock:matchesNotScrolling144                                                      descriptionBlock:describe],145                 nil);146  [[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]147      performAction:grey_swipeFastInDirection(kGREYDirectionDown)]148      assertWithMatcher:matchers];149  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Row 1")]150      assertWithMatcher:grey_sufficientlyVisible()];151}152- (void)testHiddenElementNotProvided {153  // Scroll down to ensure that the first element is hidden.154  [[self scrollToCellAtIndex:40 byScrollingInAmounts:40 InDirection:kGREYDirectionDown]155      assertWithMatcher:grey_notNil()];156  [FTRTableViewController throwErrorIfElementProviderDequeuesCellAtIndex:1];157  // Try to access the first element and ensure that the element provider does not provide it,158  // since it is hidden.159  NSError *err;160  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Row 1")]161      assertWithMatcher:grey_interactable() error:&err];...FTRGestureTest.m
Source:FTRGestureTest.m  
...110  [self assertSwipeWorksInAllDirections];111}112- (void)testSwipeOnWindow {113  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]114      performAction:grey_swipeFastInDirection(kGREYDirectionUp)];115  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe up on window")]116      assertWithMatcher:grey_sufficientlyVisible()];117  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]118      performAction:grey_swipeFastInDirection(kGREYDirectionDown)];119  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe down on window")]120      assertWithMatcher:grey_sufficientlyVisible()];121  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]122      performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];123  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe left on window")]124      assertWithMatcher:grey_sufficientlyVisible()];125  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Window swipes start here")]126      performAction:grey_swipeFastInDirection(kGREYDirectionRight)];127  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe right on window")]128      assertWithMatcher:grey_sufficientlyVisible()];129}130- (void)testSwipeWithLocationForAllDirections {131  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]132      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionUp, 0.25, 0.25)];133  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"swipe up startX:70.0 startY:70.0")]134      assertWithMatcher:grey_sufficientlyVisible()];135  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]136      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionDown, 0.75, 0.75)];137  [[EarlGrey selectElementWithMatcher:138      grey_accessibilityLabel(@"swipe down startX:210.0 startY:210.0")]139      assertWithMatcher:grey_sufficientlyVisible()];140  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]141      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionLeft, 0.875, 0.5)];142  [[EarlGrey selectElementWithMatcher:143      grey_accessibilityLabel(@"swipe left startX:245.0 startY:140.0")]144      assertWithMatcher:grey_sufficientlyVisible()];145  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]146      performAction:grey_swipeFastInDirectionWithStartPoint(kGREYDirectionRight, 0.125, 0.75)];147  [[EarlGrey selectElementWithMatcher:148      grey_accessibilityLabel(@"swipe right startX:35.0 startY:210.0")]149      assertWithMatcher:grey_sufficientlyVisible()];150}151#pragma mark - Private152- (id<GREYAction>)tapWithAmount:(int)amount {153  if (amount == 1) {154    return grey_tap();155  } else if (amount == 2) {156    return grey_doubleTap();157  } else {158    return grey_multipleTapsWithCount((NSUInteger)amount);159  }160}161// Asserts that Swipe works in all directions by verifying if the swipe gestures are correctly162// recognized.163- (void)assertSwipeWorksInAllDirections {164  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]165      performAction:grey_swipeFastInDirection(kGREYDirectionUp)];166  [self grey_assertGestureRecognized:@"swipe up"];167  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]168      performAction:grey_swipeSlowInDirection(kGREYDirectionDown)];169  [self grey_assertGestureRecognized:@"swipe down"];170  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]171      performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];172  [self grey_assertGestureRecognized:@"swipe left"];173  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Grey Box")]174      performAction:grey_swipeSlowInDirection(kGREYDirectionRight)];175  [self grey_assertGestureRecognized:@"swipe right"];176}177@end...UITableViewTest.m
Source:UITableViewTest.m  
...108}109- (void)testTableViewVisibleWhenScrolled {110  [[[[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]111      assertWithMatcher:grey_sufficientlyVisible()]112      performAction:grey_swipeFastInDirection(kGREYDirectionUp)]113      performAction:grey_swipeFastInDirection(kGREYDirectionUp)]114      assertWithMatcher:grey_sufficientlyVisible()];115}116- (void)testFrameworkSynchronizesWithScrolling {117  id<GREYMatcher> notScrollingMatcher =118      [GREYHostApplicationDistantObject.sharedInstance matcherForNotScrolling];119  [[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"main_table_view")]120      performAction:grey_swipeSlowInDirection(kGREYDirectionDown)]121      assertWithMatcher:notScrollingMatcher];122  [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Row 1")]123      assertWithMatcher:grey_sufficientlyVisible()];124}125#pragma mark - Private126- (id<GREYMatcher>)ftr_matcherForCellAtIndex:(NSInteger)index {127  return grey_accessibilityLabel([NSString stringWithFormat:@"Row %d", (int)index]);...grey_swipeFastInDirection
Using AI Code Generation
1[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"id")] performAction:grey_swipeFastInDirection(kGREYDirectionDown, 100)];2[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"id")] performAction:grey_swipeFastInDirection(kGREYDirectionUp, 100)];3GREY_EXPORT id<GREYAction> grey_swipeFastInDirection(GREYDirection direction, CGFloat speed);4id<GREYAction> grey_swipeFastInDirection(GREYDirection direction, CGFloat speed) {5                                   duration:kGREYSwipeFastInDuration];6}7+ (instancetype)actionWithDirection:(GREYDirection)direction8                              speed:(CGFloat)speed9                          duration:(CFTimeInterval)duration;10+ (instancetype)actionWithDirection:(GREYDirection)direction11                              speed:(CGFloat)speed12                          duration:(CFTimeInterval)duration {13  return [[GREYSwipeAction alloc] initWithDirection:direction speed:speed duration:duration];14}15- (instancetype)initWithDirection:(GREYDirection)direction16                            speed:(CGFloat)speed17                        duration:(CFTimeInterval)duration {18                                              NSStringFromGREYDirection(direction), speed, duration];19  self = [super initWithName:name constraints:grey_respondsTo(@selector(accessibilityFrame))];20  if (self) {21    _direction = direction;22    _speed = speed;23    _duration = duration;24  }25  return self;26}grey_swipeFastInDirection
Using AI Code Generation
1                                                constraints:grey_not(grey_systemAlertViewShown())2                                              performBlock:^BOOL (id element, __strong NSError **errorOrNil) {3    return [GREYElementInteraction performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];4}];5[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"myView")]6    performAction:actionBlock];7GREY_EXPORT id<GREYAction> grey_swipeFastInDirection(GREYDirection direction);8id<GREYAction> grey_swipeFastInDirection(GREYDirection direction) {9                             constraints:grey_not(grey_systemAlertViewShown())10                           performBlock:^BOOL (id element, __strong NSError **errorOrNil) {11        return [GREYElementInteraction performAction:grey_swipeFastInDirection(kGREYDirectionLeft)];12    }];13}14+ (BOOL)performAction:(id<GREYAction>)action15          onElementOfMatcher:(id<GREYMatcher>)elementMatcher16                   error:(__strong NSError **)errorOrNil {17    return [self performAction:action onElementOfMatcher:elementMatcher error:errorOrNil];18}grey_swipeFastInDirection
Using AI Code Generation
1[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"searchButton")]2            performAction:grey_swipeFastInDirection(kGREYDirectionUp, 1000)];3[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"searchButton")]4            performAction:grey_swipeFastInDirection(kGREYDirectionDown, 1000)];5[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"searchButton")]6            performAction:grey_swipeFastInDirection(kGREYDirectionLeft, 1000)];7[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"searchButton")]8            performAction:grey_swipeFastInDirection(kGREYDirectionRight, 1000)];9EarlGrey.selectElementWithMatcher(grey_accessibilityID("searchButton"))10            .performAction(grey_swipeFastInDirection(kGREYDirectionUp, 1000))11EarlGrey.selectElementWithMatcher(grey_accessibilityID("searchButton"))12            .performAction(grey_swipeFastInDirection(kGREYDirectionDown, 1000))13EarlGrey.selectElementWithMatcher(grey_accessibilityID("searchButton"))14            .performAction(grey_swipeFastInDirection(kGREYDirectionLeft, 1000))15EarlGrey.selectElementWithMatcher(grey_accessibilityID("searchButton"))16            .performAction(grey_swipeFastInDirection(kGREYDirectionRight, 1000))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!!
