Best EarlGrey code snippet using performAction.grey_javaScriptExecution
FailureFormattingTest.m
Source:FailureFormattingTest.m
...191 NSString *jsStringAboveTimeout =192 @"start = new Date().getTime(); while (new Date().getTime() < start + 3000);";193 // JS action timeout greater than the threshold.194 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]195 performAction:grey_javaScriptExecution(jsStringAboveTimeout, nil)];196 [[GREYConfiguration sharedConfiguration] setValue:@(originalInteractionTimeout)197 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];198 NSString *expectedDetails = @"Interaction cannot continue because the "199 @"desired element was not found.\n"200 @"\n"201 @"Check if the element exists in the UI hierarchy printed below. If "202 @"it exists, adjust the matcher so that it accurately matches "203 @"the element.\n"204 @"\n"205 @"Element Matcher:\n"206 @"(respondsToSelector(accessibilityIdentifier) && "207 @"accessibilityID('TestWKWebView'))\n"208 @"\n"209 @"Failed Action:\n"210 @"Execute JavaScript";211 XCTAssertTrue([_handler.details containsString:expectedDetails],212 @"Expected info does not appear in the actual exception details:\n\n"213 @"========== expected info ===========\n%@\n\n"214 @"========== actual exception details ==========\n%@",215 expectedDetails, _handler.details);216}217/**218 * Checks the formatting of logs for timeout error.219 */220- (void)testTimeoutErrorDescription {221 [self openTestViewNamed:@"Scroll Views"];222 id<GREYMatcher> matcher = grey_allOf(grey_accessibilityLabel(@"Label 2"), grey_interactable(),223 grey_sufficientlyVisible(), nil);224 [[GREYConfiguration sharedConfiguration] setValue:@(1)225 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];226 [[[EarlGrey selectElementWithMatcher:matcher]227 usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 50)228 onElementWithMatcher:grey_accessibilityLabel(@"Upper Scroll View")]229 assertWithMatcher:grey_sufficientlyVisible()];230 NSString *expectedDetails =231 @"Interaction timed out after 1 seconds while searching "232 @"for element.\n"233 @"\n"234 @"Increase timeout for matching element.\n"235 @"\n"236 @"Element Matcher:\n"237 @"(((respondsToSelector(isAccessibilityElement) && "238 @"isAccessibilityElement) && accessibilityLabel('Label 2')) && "239 @"interactable Point:{nan, nan} && sufficientlyVisible(Expected: "240 @"0.750000, Actual: 0.000000))\n"241 @"\n"242 @"Failed Assertion:\n"243 @"assertWithMatcher:sufficientlyVisible(Expected: 0.750000, Actual: 0.000000)\n"244 @"\n"245 @"UI Hierarchy";246 XCTAssertTrue([_handler.details containsString:expectedDetails],247 @"Expected info does not appear in the actual exception details:\n\n"248 @"========== expected info ===========\n%@\n\n"249 @"========== actual exception details ==========\n%@",250 expectedDetails, _handler.details);251}252/**253 * Checks the formatting for a type interaction failing.254 */255- (void)testActionInteractionErrorDescription {256 [[EarlGrey selectElementWithMatcher:grey_text(@"Basic Views")] performAction:grey_tap()];257 [[EarlGrey selectElementWithMatcher:grey_text(@"Tab 2")] performAction:grey_tap()];258 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"foo")]259 performAction:grey_typeText(@"")];260 NSString *expectedDetails =261 @"Failed to type because the provided string was empty.\n"262 @"\n"263 @"Element Matcher:\n"264 @"(respondsToSelector(accessibilityIdentifier) && accessibilityID('foo'))\n"265 @"\n"266 @"UI Hierarchy";267 XCTAssertTrue([_handler.details containsString:expectedDetails],268 @"Expected info does not appear in the actual exception details:\n\n"269 @"========== expected info ===========\n%@\n\n"270 @"========== actual exception details ==========\n%@",271 expectedDetails, _handler.details);272}273- (void)testMultipleMatchedErrorDescription {274 [[EarlGrey selectElementWithMatcher:grey_kindOfClass([UITableViewCell class])]275 performAction:grey_tap()276 error:nil];277 NSString *expectedDetails = @"Multiple elements were matched. Please use selection matchers "278 @"to narrow the selection down to a single element.\n"279 @"\n"280 @"Create a more specific matcher to uniquely match the element. "281 @"In general, prefer using accessibility ID before accessibility "282 @"label or other attributes.\n"283 @"Use atIndex: to select from one of the matched elements. "284 @"Keep in mind when using atIndex: that the order in which "285 @"elements are arranged may change, making your test brittle.\n"286 @"\n"287 @"Element Matcher:\n"288 @"kindOfClass('UITableViewCell')\n"289 @"\n"290 @"Failed Action:\n"291 @"Tap\n"292 @"\n"293 @"Elements Matched:\n"294 @"\n"295 @"\t1.";296 XCTAssertTrue([_handler.details containsString:expectedDetails],297 @"Expected info does not appear in the actual exception details:\n\n"298 @"========== expected info ===========\n%@\n\n"299 @"========== actual exception details ==========\n%@",300 expectedDetails, _handler.details);301 XCTAssertTrue([_handler.details containsString:@"UI Hierarchy"],302 @"\"UI Hierarchy\" does not appear in the actual exception details:\n\n"303 @"========== exception details ==========\n%@",304 _handler.details);305}306- (void)testConstraintsFailureErrorDescription {307 [[EarlGrey selectElementWithMatcher:grey_text(@"Basic Views")] performAction:grey_tap()];308 [[EarlGrey selectElementWithMatcher:grey_buttonTitle(@"Disabled")]309 performAction:grey_scrollInDirection(kGREYDirectionUp, 20)310 error:nil];311 NSString *expectedDetails1 = @"Cannot perform action due to constraint(s) failure.\n"312 @"\n"313 @"Adjust element properties so that it matches the failed "314 @"constraint(s).\n"315 @"\n"316 @"Element Matcher:\n"317 @"(kindOfClass('UIButton') && buttonTitle('Disabled'))\n"318 @"\n"319 @"Failed Constraint(s):\n"320 @"kindOfClass('UIScrollView')kindOfClass('WKWebView'), \n"321 @"\n"322 @"Element Description:\n"323 @"<UIButton:";324 NSString *expectedDetails2 = @"Failed Action:\n"325 @"Scroll Up for 20\n"326 @"\n"327 @"UI Hierarchy";328 XCTAssertTrue([_handler.details containsString:expectedDetails1],329 @"Expected info does not appear in the actual exception details:\n\n"330 @"========== expected info ===========\n%@\n\n"331 @"========== actual exception details ==========\n%@",332 expectedDetails1, _handler.details);333 XCTAssertTrue([_handler.details containsString:expectedDetails2],334 @"Expected info does not appear in the actual exception details:\n\n"335 @"========== expected info ===========\n%@\n\n"336 @"========== actual exception details ==========\n%@",337 expectedDetails2, _handler.details);338}339/**340 * Checks the formatting for an assertion failure.341 */342- (void)testAssertionInteractionErrorDescription {343 [[EarlGrey selectElementWithMatcher:grey_keyWindow()] assertWithMatcher:grey_nil()];344 NSString *expectedDetailsTillElement = @"Element does not meet assertion criteria:\nisNil\n\n"345 "Element:\n<UIWindow:";346 NSString *expectedDetailsForMatcher = @"\n\nMismatch:\nisNil\n\nElement Matcher:\n"347 @"(kindOfClass('UIWindow') && keyWindow)\n\nUI Hierarchy";348 XCTAssertTrue([_handler.details containsString:expectedDetailsTillElement],349 @"Expected info does not appear in the actual exception details:\n\n"350 @"========== expected info ===========\n%@\n\n"351 @"========== actual exception details ==========\n%@",352 expectedDetailsTillElement, _handler.details);353 XCTAssertTrue([_handler.details containsString:expectedDetailsForMatcher],354 @"Expected info does not appear in the actual exception details:\n\n"355 @"========== expected info ===========\n%@\n\n"356 @"========== actual exception details ==========\n%@",357 expectedDetailsForMatcher, _handler.details);358}359/**360 * Checks the formatting for the failure seen when the index passed in is more than the total number361 * of elements.362 */363- (void)testMatchedElementOutOfBoundsDescription {364 [self openTestViewNamed:@"Typing Views"];365 [[[EarlGrey selectElementWithMatcher:grey_kindOfClass([UITextField class])] atIndex:999]366 assertWithMatcher:grey_notNil()];367 NSString *expectedDetails =368 @"3 elements were matched, but element at index 999 was requested.\n\n"369 @"Please use an element index from 0 to 2.\n\n"370 @"Element Matcher:\n"371 @"kindOfClass('UITextField')";372 XCTAssertTrue([_handler.details containsString:expectedDetails],373 @"Expected info does not appear in the actual exception details:\n\n"374 @"========== expected info ===========\n%@\n\n"375 @"========== actual exception details ==========\n%@",376 expectedDetails, _handler.details);377}378/**379 * Checks that the element matcher and UI hierarchy are present in the WKWebView error.380 */381- (void)testWKWebViewFormatting {382 [self openTestViewNamed:@"WKWebView"];383 id<GREYAction> jsAction = grey_javaScriptExecution(@"var foo; foo.bar();", nil);384 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")] performAction:jsAction385 error:nil];386 NSString *jsErrorDetails = @"TypeError: undefined is not an object (evaluating 'foo.bar')";387 XCTAssertTrue([_handler.details containsString:jsErrorDetails],388 @"Exception:%@ doesn't have the JS Error Details:%@", _handler.details,389 jsErrorDetails);390 XCTAssertTrue([_handler.details containsString:@"Element Matcher:"],391 @"Exception:%@ doesn't have the Element Matcher:", _handler.details);392 XCTAssertTrue([_handler.details containsString:@"UI Hierarchy"],393 @"Exception:%@ doesn't have the UI Hierarchy:", _handler.details);394 XCTAssertTrue([_handler.details containsString:@"Failed Action:\nExecute JavaScript\n"],395 @"Exception:%@ doesn't have the JavaScript Action Name:", _handler.details);396}397/**...
FTRUIWebViewTest.m
Source:FTRUIWebViewTest.m
...322 // Verify if the "HELLO WORLD" message has been correctly typed.323 [interaction assertWithMatcher:grey_accessibilityValue(@"HELLO WORLD")];324 // Close the keyboard.325 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"FTRTestWebView")]326 performAction:grey_javaScriptExecution(@"document.activeElement.blur();", nil)];327 // Check visibility of the button.328 matcher = grey_allOf(grey_accessibilityLabel(@"DONT CLICK ME"), grey_interactable(),329 grey_accessibilityTrait(UIAccessibilityTraitButton), nil);330 interaction = [[EarlGrey selectElementWithMatcher:matcher]331 usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 200)332 onElementWithMatcher:grey_accessibilityID(@"FTRTestWebView")];333 [interaction assertWithMatcher:grey_sufficientlyVisible()];334 // Click on the button and wait until the test text appears.335 [interaction performAction:grey_tap()];336 // Wait for the test text to appear.337 [self ftr_waitForElementWithAccessibilityLabelToAppear:@"Told ya."];338}339@end...
UIWebViewTest.m
Source:UIWebViewTest.m
...322 // Verify if the "HELLO WORLD" message has been correctly typed.323 [interaction assertWithMatcher:grey_accessibilityValue(@"HELLO WORLD")];324 // Close the keyboard.325 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWebView")]326 performAction:grey_javaScriptExecution(@"document.activeElement.blur();", nil)];327 // Check visibility of the button.328 matcher = grey_allOf(grey_accessibilityLabel(@"DONT CLICK ME"), grey_interactable(),329 grey_accessibilityTrait(UIAccessibilityTraitButton), nil);330 interaction = [[EarlGrey selectElementWithMatcher:matcher]331 usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 200)332 onElementWithMatcher:grey_accessibilityID(@"TestWebView")];333 [interaction assertWithMatcher:grey_sufficientlyVisible()];334 // Click on the button and wait until the test text appears.335 [interaction performAction:grey_tap()];336 // Wait for the test text to appear.337 [self ftr_waitForElementWithAccessibilityLabelToAppear:@"Told ya."];338}339@end...
FTRLocalUIWebViewTest.m
Source:FTRLocalUIWebViewTest.m
...111 }112 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"loadGoogle")]113 performAction:grey_tap()];114 id<GREYAction> jsAction =115 grey_javaScriptExecution(@"window.location.href='http://images.google.com'", nil);116 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"FTRTestWebView")]117 performAction:jsAction];118 NSError *error;119 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"IMAGES")]120 assertWithMatcher:grey_sufficientlyVisible() error:&error];121 if (error) {122 // On some form factors, label is set to "Images" instead of "IMAGES".123 [[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Images")] atIndex:1]124 assertWithMatcher:grey_sufficientlyVisible()];125 }126 NSString *executionString = @"window.location.href='http://translate.google.com'";127 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"FTRTestWebView")]128 performAction:grey_javaScriptExecution(executionString, nil)];129 id<GREYAction> executeJavascript =130 grey_javaScriptExecution(@"window.location.href='http://play.google.com'", nil);131 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"FTRTestWebView")]132 performAction:executeJavascript];133 NSString *jsResult;134 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"FTRTestWebView")]135 performAction:grey_javaScriptExecution(@"2 + 2", &jsResult)];136 GREYAssertTrue([jsResult isEqualToString:@"4"], @"Expected: 4, Actual: %@", jsResult);137}138#pragma mark - Private139/**140 * Waits for the element matching @c matcher to become visible or 3 seconds whichever happens141 * first.142 *143 * @param name Name of the element to wait for.144 * @param matcher Matcher that uniquely matches the element to wait for.145 */146- (void)ftr_waitForWebElementWithName:(NSString *)name elementMatcher:(id<GREYMatcher>)matcher {147 // TODO: Improve EarlGrey webview synchronization so that it automatically waits for the page to148 // load removing the need for conditions such as this.149 [[GREYCondition conditionWithName:[@"Wait For Element With Name: " stringByAppendingString:name]...
WKWebViewTest.m
Source:WKWebViewTest.m
...43}44- (void)testJavascriptEvaluationWithAReturnValue {45 EDORemoteVariable<NSString *> *javaScriptResult = [[EDORemoteVariable alloc] init];46 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]47 performAction:grey_javaScriptExecution(@"var foo = 1; foo + 1;", javaScriptResult)];48 XCTAssertEqualObjects(javaScriptResult.object, @"2");49}50- (void)testJavascriptEvaluationWithATimeoutAboveTheThreshold {51 NSError *error = nil;52 CFTimeInterval originalInteractionTimeout =53 GREY_CONFIG_DOUBLE(kGREYConfigKeyInteractionTimeoutDuration);54 [[GREYConfiguration sharedConfiguration] setValue:@(1)55 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];56 NSString *jsStringAboveTimeout =57 @"start = new Date().getTime(); while (new Date().getTime() < start + 3000);";58 // JS action timeout greater than the threshold.59 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]60 performAction:grey_javaScriptExecution(jsStringAboveTimeout, nil)61 error:&error];62 XCTAssertEqual(error.code, kGREYWKWebViewInteractionFailedErrorCode);63 NSString *timeoutErrorString = @"Interaction with WKWebView failed because of timeout";64 XCTAssertNotEqual([error.localizedDescription rangeOfString:timeoutErrorString].location,65 NSNotFound);66 [[GREYConfiguration sharedConfiguration] setValue:@(originalInteractionTimeout)67 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];68}69- (void)testJavascriptEvaluationWithATimeoutBelowTheThreshold {70 NSError *error = nil;71 CFTimeInterval originalInteractionTimeout =72 GREY_CONFIG_DOUBLE(kGREYConfigKeyInteractionTimeoutDuration);73 [[GREYConfiguration sharedConfiguration] setValue:@(1)74 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];75 EDORemoteVariable<NSString *> *javaScriptResult = [[EDORemoteVariable alloc] init];76 NSString *jsStringEqualTimeout =77 @"start = new Date().getTime(); while (new Date().getTime() < start + 200);"78 @"end = new Date().getTime(); end - start";79 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]80 performAction:grey_javaScriptExecution(jsStringEqualTimeout, javaScriptResult)81 error:&error];82 XCTAssertNil(error, @"Error for a valid call is nil");83 XCTAssertGreaterThanOrEqual([javaScriptResult.object intValue], 200);84 [[GREYConfiguration sharedConfiguration] setValue:@(originalInteractionTimeout)85 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];86}87- (void)testJavascriptExecutionError {88 EDORemoteVariable<NSString *> *javaScriptResult = [[EDORemoteVariable alloc] init];89 NSError *error;90 id<GREYAction> jsAction =91 grey_javaScriptExecution(@"document.body.getElementsByTagName(\"*\");", javaScriptResult);92 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")] performAction:jsAction93 error:&error];94 XCTAssertEqualObjects(error.domain, kGREYInteractionErrorDomain);95 XCTAssertEqual(error.code, kGREYWKWebViewInteractionFailedErrorCode);96}97@end...
FTRWKWebViewTest.m
Source:FTRWKWebViewTest.m
...39}40- (void)testJavascriptEvaluationWithAReturnValue {41 EDORemoteVariable<NSString *> *javaScriptResult = [[EDORemoteVariable alloc] init];42 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]43 performAction:grey_javaScriptExecution(@"var foo = 1; foo + 1;", javaScriptResult)];44 XCTAssertEqualObjects(javaScriptResult.object, @"2");45}46- (void)testJavascriptEvaluationWithATimeoutAboveTheThreshold {47 NSError *error = nil;48 CFTimeInterval originalInteractionTimeout =49 GREY_CONFIG_DOUBLE(kGREYConfigKeyInteractionTimeoutDuration);50 [[GREYConfiguration sharedConfiguration] setValue:@(1)51 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];52 NSString *jsStringAboveTimeout =53 @"start = new Date().getTime(); while (new Date().getTime() < start + 3000);";54 // JS action timeout greater than the threshold.55 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]56 performAction:grey_javaScriptExecution(jsStringAboveTimeout, nil)57 error:&error];58 XCTAssertEqual(error.code, kGREYWKWebViewInteractionFailedErrorCode);59 NSString *timeoutErrorString = @"Interaction with WKWebView failed because of timeout";60 XCTAssertNotEqual([error.localizedDescription rangeOfString:timeoutErrorString].location,61 NSNotFound);62 [[GREYConfiguration sharedConfiguration] setValue:@(originalInteractionTimeout)63 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];64}65- (void)testJavascriptEvaluationWithATimeoutBelowTheThreshold {66 NSError *error = nil;67 CFTimeInterval originalInteractionTimeout =68 GREY_CONFIG_DOUBLE(kGREYConfigKeyInteractionTimeoutDuration);69 [[GREYConfiguration sharedConfiguration] setValue:@(1)70 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];71 EDORemoteVariable<NSString *> *javaScriptResult = [[EDORemoteVariable alloc] init];72 NSString *jsStringEqualTimeout =73 @"start = new Date().getTime(); while (new Date().getTime() < start + 200);"74 @"end = new Date().getTime(); end - start";75 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")]76 performAction:grey_javaScriptExecution(jsStringEqualTimeout, javaScriptResult)77 error:&error];78 XCTAssertNil(error, @"Error for a valid call is nil");79 XCTAssertGreaterThanOrEqual([javaScriptResult.object intValue], 200);80 [[GREYConfiguration sharedConfiguration] setValue:@(originalInteractionTimeout)81 forConfigKey:kGREYConfigKeyInteractionTimeoutDuration];82}83- (void)testJavascriptExecutionError {84 EDORemoteVariable<NSString *> *javaScriptResult = [[EDORemoteVariable alloc] init];85 NSError *error;86 id<GREYAction> jsAction =87 grey_javaScriptExecution(@"document.body.getElementsByTagName(\"*\");", javaScriptResult);88 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestWKWebView")] performAction:jsAction89 error:&error];90 XCTAssertEqualObjects(error.domain, kGREYInteractionErrorDomain);91 XCTAssertEqual(error.code, kGREYWKWebViewInteractionFailedErrorCode);92}93@end...
grey_javaScriptExecution
Using AI Code Generation
1GREYActionBlock *actionBlock = [GREYActionBlock actionWithName:@"grey_javaScriptExecution" constraints:grey_not(grey_systemAlertViewShown()) performBlock:^BOOL(id element, NSError *__strong *errorOrNil) {2 return YES;3}];4[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webView")] performAction:actionBlock];5+ (instancetype)actionWithName:(NSString *)name6 constraints:(id<GREYMatcher>)constraints7 performBlock:(BOOL (^)(id element, NSError *__strong *errorOrNil))block;8+ (instancetype)actionWithName:(NSString *)name9 constraints:(id<GREYMatcher>)constraints10 performBlock:(BOOL (^)(id element, NSError *__strong *errorOrNil))block {11 GREYActionBlock *actionBlock = [[GREYActionBlock alloc] init];12 actionBlock.name = name;13 actionBlock.constraints = constraints;14 actionBlock.performBlock = block;15 return actionBlock;16}17- (BOOL)perform:(id)element error:(__strong NSError **)error {18 return YES;19}20- (BOOL)perform:(id)element error:(__strong NSError **)error {21 return YES;22}23- (BOOL)perform:(id)element error:(__strong NSError **)error {24 return YES;25}26- (BOOL)perform:(id)element error:(__strong NSError **)error {27 return YES;28}29- (BOOL)perform:(id)element error:(__strong NSError **)error {
grey_javaScriptExecution
Using AI Code Generation
1GREYElementInteraction *interaction = [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestID")] usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 200) onElementWithMatcher:grey_accessibilityID(@"TestID")];2[interaction performAction:grey_javaScriptExecution(@"document.getElementById('TestID').value = 'TestValue';")];3[interaction performAction:grey_tap()];4GREYElementInteraction *interaction = [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"TestID")] usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 200) onElementWithMatcher:grey_accessibilityID(@"TestID")];5[interaction performAction:grey_javaScriptExecution(@"document.getElementById('TestID').value = 'TestValue';")];6[interaction performAction:grey_tap()];
grey_javaScriptExecution
Using AI Code Generation
1[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]2 performAction:grey_javaScriptExecution(@"document.getElementById('name').value = 'EarlGrey';", nil)];3[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]4 performAction:grey_javaScriptExecution(@"document.getElementById('name').value = 'EarlGrey';", nil)];5[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]6 performAction:grey_javaScriptExecution(@"document.getElementById('name').value = 'EarlGrey';", nil)];7[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]8 performAction:grey_javaScriptExecution(@"document.getElementById('name').value = 'EarlGrey';", nil)];9[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]10 performAction:grey_javaScriptExecution(@"document.getElementById('name').value = 'EarlGrey';", nil)];11[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]12 performAction:grey_javaScriptExecution(@"document.getElementById('name').value = 'EarlGrey';", nil)];13[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]14 performAction:grey_javaScriptExecution(@"document.getElementById
grey_javaScriptExecution
Using AI Code Generation
1[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]2 performAction:grey_javaScriptExecution(@"document.getElementById('id').value = 'value';", nil)];3[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"webview")]4 assertWithMatcher:grey_javaScriptExecution(@"document.getElementById('id').value == 'value';", nil)];5+ (id<GREYAction>)grey_javaScriptExecution:(NSString *)script error:(NSError **)errorOrNil {6}7+ (id<GREYAction>)grey_javaScriptExecution:(NSString *)script error:(NSError **)errorOrNil;8GREY_EXPORT id<GREYAction> grey_javaScriptExecution(NSString *script, NSError **errorOrNil);9id<GREYAction> grey_javaScriptExecution(NSString *script, NSError **errorOrNil) {10 return [GREYJavaScriptExecutionAction actionWithScript:script error:errorOrNil];11}12- (instancetype)initWithScript:(NSString *)script error:(NSError **)errorOrNil {13}14+ (instancetype)actionWithScript:(NSString *)script error:(NSError **)errorOrNil;15GREY_EXPORT id<GREYAction> grey_javaScriptExecution(NSString *script, NSError **errorOrNil);16id<GREYAction> grey_javaScriptExecution(NSString *script, NSError **errorOrNil) {17 return [GREYJavaScriptExecutionAction actionWithScript:script error:errorOrNil];18}19GREY_EXPORT id<GREYAction> grey_javaScriptExecution(NSString *script, NSError **errorOrNil);20id<GREYAction> grey_javaScriptExecution(NSString *script, NSError **errorOrNil) {21 return [GREYJavaScriptExecutionAction actionWithScript:script error:errorOrNil];22}
grey_javaScriptExecution
Using AI Code Generation
1GREYElementInteraction *interaction = [EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"WebView")];2[[interaction performAction:grey_javaScriptExecution(@"document.getElementById('text').value = 'Hello World'")] assertWithMatcher:grey_sufficientlyVisible()];3GREYElementInteraction *interaction = [EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"WebView")];4[[interaction performAction:grey_javaScriptExecution(@"document.getElementById('text').value = 'Hello World'")] assertWithMatcher:grey_sufficientlyVisible()];5GREYElementInteraction *interaction = [EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"WebView")];6[[interaction assertWithMatcher:grey_javaScriptExecution(@"document.getElementById('text').value == 'Hello World'")] assertWithMatcher:grey_sufficientlyVisible()];7GREYElementInteraction *interaction = [EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"WebView")];8[[interaction assertWithMatcher:grey_javaScriptExecution(@"document.getElementById('text').value == 'Hello World'")] assertWithMatcher:grey_sufficientlyVisible()];
grey_javaScriptExecution
Using AI Code Generation
1[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]2 performAction:grey_javaScriptExecution(3 @"var alert = window.alert;"4 @"window.alert = function() {"5 @" window.alert = alert;"6 @" window.alertCalled = true;"7 @" alert.apply(this, arguments);"8 @"};"9 @"window.alertCalled = false;")];10[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]11 performAction:grey_tap()];12[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"OK")]13 performAction:grey_tap()];14[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]15 assertWithMatcher:grey_javaScriptExecution(16 @"return window.alertCalled;")];17[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]18 performAction:grey_javaScriptExecution(19 @"var alert = window.alert;"20 @"window.alert = function() {"21 @" window.alert = alert;"22 @" window.alertCalled = true;"23 @" alert.apply(this, arguments);"24 @"};"25 @"window.alertCalled = false;")];26[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]27 performAction:grey_tap()];28[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"OK")]29 performAction:grey_tap()];30[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]31 assertWithMatcher:grey_javaScriptExecution(32 @"return window.alertCalled;")];33[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Show Alert")]34 performAction:grey_javaScriptExecution(35 @"var alert = window.alert;"36 @"window.alert = function() {"37 @" window.alert = alert;"38 @" window.alertCalled = true;"39 @" alert.apply(this, arguments);"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!!