appium-webdriveragent 16.8.0 → 16.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_1.xcscheme +7 -0
  3. package/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_2.xcscheme +7 -0
  4. package/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_3.xcscheme +7 -0
  5. package/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_tvOS.xcscheme +7 -0
  6. package/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_watchOS.xcscheme +7 -0
  7. package/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.m +2 -4
  8. package/WebDriverAgentLib/Categories/XCUIElement+FBUtilities.m +4 -2
  9. package/WebDriverAgentLib/Info.plist +2 -2
  10. package/WebDriverAgentLib/Routing/FBWebServer.m +4 -0
  11. package/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +9 -1
  12. package/WebDriverAgentLib/Utilities/FBXPath.m +3 -2
  13. package/WebDriverAgentTests/IntegrationTests/FBAutoAlertsHandlerTests.m +10 -4
  14. package/WebDriverAgentTests/IntegrationTests/FBConfigurationTests.m +1 -1
  15. package/WebDriverAgentTests/IntegrationTests/FBElementAttributeTests.m +1 -1
  16. package/WebDriverAgentTests/IntegrationTests/FBElementVisibilityTests.m +6 -13
  17. package/WebDriverAgentTests/IntegrationTests/FBForceTouchTests.m +3 -3
  18. package/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.h +7 -5
  19. package/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.m +6 -8
  20. package/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +5 -1
  21. package/WebDriverAgentTests/IntegrationTests/FBScrollingTests.m +3 -6
  22. package/WebDriverAgentTests/IntegrationTests/FBVideoRecordingTests.m +1 -2
  23. package/WebDriverAgentTests/IntegrationTests/FBVoiceOverTests.m +5 -5
  24. package/WebDriverAgentTests/IntegrationTests/FBW3CTouchActionsIntegrationTests.m +1 -1
  25. package/WebDriverAgentTests/IntegrationTests/FBW3CTypeActionsTests.m +3 -3
  26. package/WebDriverAgentTests/IntegrationTests/XCUIApplicationHelperTests.m +1 -1
  27. package/WebDriverAgentTests/IntegrationTests/XCUIDeviceHelperTests.m +5 -5
  28. package/WebDriverAgentTests/IntegrationTests/XCUIElementFBFindTests.m +22 -0
  29. package/build/lib/types.d.ts +11 -0
  30. package/build/lib/types.d.ts.map +1 -1
  31. package/lib/types.ts +11 -0
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [16.9.1](https://github.com/appium/WebDriverAgent/compare/v16.9.0...v16.9.1) (2026-08-28)
2
+
3
+ ### Bug Fixes
4
+
5
+ * add missing settings to the exported WDASettings/WDACapabilities types ([#1230](https://github.com/appium/WebDriverAgent/issues/1230)) ([a9e8203](https://github.com/appium/WebDriverAgent/commit/a9e8203d71051db7a0c14c192288b2b5115cf5cf))
6
+ * do not trust XCUIElement.lastSnapshot for long-lived elements ([#1235](https://github.com/appium/WebDriverAgent/issues/1235)) ([57968cc](https://github.com/appium/WebDriverAgent/commit/57968cc58b69ea9f036d70a694a0c9a5b6f764f7))
7
+
8
+ ## [16.9.0](https://github.com/appium/WebDriverAgent/compare/v16.8.0...v16.9.0) (2026-08-27)
9
+
10
+ ### Features
11
+
12
+ * cache the system application resolution for WDA's process lifetime ([#1232](https://github.com/appium/WebDriverAgent/issues/1232)) ([21c98f2](https://github.com/appium/WebDriverAgent/commit/21c98f253561ee3dfc93edfb1c4de6afc3200b50))
13
+
1
14
  ## [16.8.0](https://github.com/appium/WebDriverAgent/compare/v16.7.3...v16.8.0) (2026-08-24)
2
15
 
3
16
  ### Features
@@ -59,6 +59,13 @@
59
59
  ReferencedContainer = "container:WebDriverAgent.xcodeproj">
60
60
  </BuildableReference>
61
61
  </MacroExpansion>
62
+ <EnvironmentVariables>
63
+ <EnvironmentVariable
64
+ key = "CI"
65
+ value = "$(CI)"
66
+ isEnabled = "YES">
67
+ </EnvironmentVariable>
68
+ </EnvironmentVariables>
62
69
  </LaunchAction>
63
70
  <ProfileAction
64
71
  buildConfiguration = "Release"
@@ -59,6 +59,13 @@
59
59
  ReferencedContainer = "container:WebDriverAgent.xcodeproj">
60
60
  </BuildableReference>
61
61
  </MacroExpansion>
62
+ <EnvironmentVariables>
63
+ <EnvironmentVariable
64
+ key = "CI"
65
+ value = "$(CI)"
66
+ isEnabled = "YES">
67
+ </EnvironmentVariable>
68
+ </EnvironmentVariables>
62
69
  </LaunchAction>
63
70
  <ProfileAction
64
71
  buildConfiguration = "Release"
@@ -59,6 +59,13 @@
59
59
  ReferencedContainer = "container:WebDriverAgent.xcodeproj">
60
60
  </BuildableReference>
61
61
  </MacroExpansion>
62
+ <EnvironmentVariables>
63
+ <EnvironmentVariable
64
+ key = "CI"
65
+ value = "$(CI)"
66
+ isEnabled = "YES">
67
+ </EnvironmentVariable>
68
+ </EnvironmentVariables>
62
69
  </LaunchAction>
63
70
  <ProfileAction
64
71
  buildConfiguration = "Release"
@@ -59,6 +59,13 @@
59
59
  ReferencedContainer = "container:WebDriverAgent.xcodeproj">
60
60
  </BuildableReference>
61
61
  </MacroExpansion>
62
+ <EnvironmentVariables>
63
+ <EnvironmentVariable
64
+ key = "CI"
65
+ value = "$(CI)"
66
+ isEnabled = "YES">
67
+ </EnvironmentVariable>
68
+ </EnvironmentVariables>
62
69
  </LaunchAction>
63
70
  <ProfileAction
64
71
  buildConfiguration = "Release"
@@ -59,6 +59,13 @@
59
59
  ReferencedContainer = "container:WebDriverAgent.xcodeproj">
60
60
  </BuildableReference>
61
61
  </MacroExpansion>
62
+ <EnvironmentVariables>
63
+ <EnvironmentVariable
64
+ key = "CI"
65
+ value = "$(CI)"
66
+ isEnabled = "YES">
67
+ </EnvironmentVariable>
68
+ </EnvironmentVariables>
62
69
  </LaunchAction>
63
70
  <ProfileAction
64
71
  buildConfiguration = "Release"
@@ -134,10 +134,8 @@
134
134
  - (NSArray<XCUIElement *> *)fb_snapshotDescendantsMatchingChainItems:(NSArray<FBClassChainItem *> *)chainItems shouldReturnAfterFirstMatch:(BOOL)shouldReturnAfterFirstMatch
135
135
  {
136
136
  NSMutableArray<FBClassChainItem *> *lookupChain = chainItems.mutableCopy;
137
- // Reuse an already-taken snapshot of `self` if one is available (e.g. the
138
- // caller just resolved/inspected this same element) instead of always
139
- // paying for a fresh one.
140
- NSArray<id<FBXCElementSnapshot>> *currentRoots = @[self.lastSnapshot ?: self.fb_cachedSnapshot ?: [self fb_customSnapshot]];
137
+ // self.lastSnapshot may be stale leftover from an unrelated earlier command.
138
+ NSArray<id<FBXCElementSnapshot>> *currentRoots = @[self.fb_cachedSnapshot ?: [self fb_customSnapshot]];
141
139
  FBClassChainItem *chainItem = lookupChain.firstObject;
142
140
  NSArray<id<FBXCElementSnapshot>> *candidates = [self.class fb_snapshotsMatchingItem:chainItem inRoots:currentRoots];
143
141
  [lookupChain removeObjectAtIndex:0];
@@ -100,9 +100,11 @@
100
100
  }
101
101
  }
102
102
  NSMutableArray<XCUIElement *> *matchedElements = [NSMutableArray array];
103
- NSString *uid = nil == self.lastSnapshot
103
+ // self.lastSnapshot may be stale leftover from an unrelated earlier command.
104
+ id<FBXCElementSnapshot> selfSnapshot = self.fb_cachedSnapshot;
105
+ NSString *uid = nil == selfSnapshot
104
106
  ? self.fb_uid
105
- : [FBXCElementSnapshotWrapper wdUIDWithSnapshot:self.lastSnapshot];
107
+ : [FBXCElementSnapshotWrapper wdUIDWithSnapshot:selfSnapshot];
106
108
  if (nil != uid && [matchedIds containsObject:uid]) {
107
109
  XCUIElement *stableSelf = [self fb_stableInstanceWithUid:uid];
108
110
  if (1 == snapshots.count) {
@@ -15,11 +15,11 @@
15
15
  <key>CFBundlePackageType</key>
16
16
  <string>FMWK</string>
17
17
  <key>CFBundleShortVersionString</key>
18
- <string>16.8.0</string>
18
+ <string>16.9.1</string>
19
19
  <key>CFBundleSignature</key>
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>16.8.0</string>
22
+ <string>16.9.1</string>
23
23
  <key>NSPrincipalClass</key>
24
24
  <string/>
25
25
  </dict>
@@ -269,6 +269,9 @@ static NSString *const FBServerURLEndMarker = @"<-ServerURLHere";
269
269
  [response respondWithString:@"<!DOCTYPE html><html><title>Health Check</title><body><p>I-AM-ALIVE</p></body></html>"];
270
270
  }];
271
271
 
272
+ // Deprecated: no longer needed since appium-xcuitest-driver handles calibration
273
+ // itself (https://github.com/appium/appium-xcuitest-driver/pull/2948). Kept for
274
+ // backward compatibility; will be removed in a future major release.
272
275
  NSString *calibrationPage = @"<html>"
273
276
  "<title>{\"x\":null,\"y\":null}</title>"
274
277
  "<header>"
@@ -276,6 +279,7 @@ static NSString *const FBServerURLEndMarker = @"<-ServerURLHere";
276
279
  "</header>"
277
280
  "</html>";
278
281
  [self.server get:@"/calibrate" withBlock:^(RouteRequest *request, RouteResponse *response) {
282
+ [FBLogger logFmt:@"The /calibrate endpoint is deprecated and will be removed in a future release"];
279
283
  [response respondWithString:calibrationPage];
280
284
  }];
281
285
 
@@ -20,6 +20,7 @@ static id FBAXClient = nil;
20
20
  @interface FBXCAXClientProxy ()
21
21
 
22
22
  @property (nonatomic) NSMutableDictionary<NSNumber *, XCUIApplication *> *appsCache;
23
+ @property (nonatomic, nullable) id<FBXCAccessibilityElement> cachedSystemApplication;
23
24
 
24
25
  @end
25
26
 
@@ -67,7 +68,14 @@ static id FBAXClient = nil;
67
68
 
68
69
  - (id<FBXCAccessibilityElement>)systemApplication
69
70
  {
70
- return [FBAXClient systemApplication];
71
+ @synchronized (self) {
72
+ if (nil == self.cachedSystemApplication) {
73
+ // The system application's identity cannot change without it being killed,
74
+ // which takes WDA down with it, so it is safe to cache it forever.
75
+ self.cachedSystemApplication = [FBAXClient systemApplication];
76
+ }
77
+ return self.cachedSystemApplication;
78
+ }
71
79
  }
72
80
 
73
81
  - (NSDictionary *)defaultParameters
@@ -258,10 +258,11 @@ static NSString *const topNodeIndexPath = @"top";
258
258
  if ([root isKindOfClass:XCUIElement.class]) {
259
259
  lookupScopeSnapshot = [self snapshotWithRoot:[(XCUIElement *)root application]
260
260
  useNative:useNativeSnapshot];
261
+ // root.lastSnapshot may be stale leftover from an unrelated earlier command.
261
262
  contextRootSnapshot = [root isKindOfClass:XCUIApplication.class]
262
263
  ? nil
263
- : ([(XCUIElement *)root lastSnapshot] ?: [self snapshotWithRoot:(XCUIElement *)root
264
- useNative:useNativeSnapshot]);
264
+ : ([(XCUIElement *)root fb_cachedSnapshot] ?: [self snapshotWithRoot:(XCUIElement *)root
265
+ useNative:useNativeSnapshot]);
265
266
  } else {
266
267
  lookupScopeSnapshot = (id<FBXCElementSnapshot>)root;
267
268
  contextRootSnapshot = nil == lookupScopeSnapshot.parent ? nil : (id<FBXCElementSnapshot>)root;
@@ -44,9 +44,12 @@
44
44
  [super tearDown];
45
45
  }
46
46
 
47
- // The test is flaky on slow Travis CI
48
- - (void)disabled_testAutoAcceptingOfAlerts
47
+ - (void)testAutoAcceptingOfAlerts
49
48
  {
49
+ if (FBIntegrationTestCase.isRunningInCI) {
50
+ XCTSkip(@"Flaky on slow CI machines");
51
+ }
52
+
50
53
  self.session = [FBSession
51
54
  initWithApplication:XCUIApplication.fb_activeApplication
52
55
  defaultAlertAction:@"accept"];
@@ -57,9 +60,12 @@
57
60
  }
58
61
  }
59
62
 
60
- // The test is flaky on slow Travis CI
61
- - (void)disabled_testAutoDismissingOfAlerts
63
+ - (void)testAutoDismissingOfAlerts
62
64
  {
65
+ if (FBIntegrationTestCase.isRunningInCI) {
66
+ XCTSkip(@"Flaky on slow CI machines");
67
+ }
68
+
63
69
  self.session = [FBSession
64
70
  initWithApplication:XCUIApplication.fb_activeApplication
65
71
  defaultAlertAction:@"dismiss"];
@@ -40,7 +40,7 @@
40
40
 
41
41
  - (void)testAccessibilityDeadlineAbortsSnapshotRequestForDeadlockedApp
42
42
  {
43
- if (nil != NSProcessInfo.processInfo.environment[@"CI"]) {
43
+ if (FBIntegrationTestCase.isRunningInCI) {
44
44
  XCTSkip(@"Deliberately freezes the app for several seconds, too slow/flaky for CI");
45
45
  }
46
46
 
@@ -66,7 +66,7 @@
66
66
  // Images are neither accessibility elements nor contain them, so both checks should fail
67
67
  XCUIElement *imageElement = self.testedApplication.images.allElementsBoundByIndex.firstObject;
68
68
  if (nil == imageElement) {
69
- return;
69
+ XCTSkip(@"No image element available to test");
70
70
  }
71
71
 
72
72
  XCTAssertTrue(imageElement.exists);
@@ -22,7 +22,7 @@
22
22
  - (void)testSpringBoardIcons
23
23
  {
24
24
  if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
25
- return;
25
+ XCTSkip(@"Not applicable to iPad");
26
26
  }
27
27
  [self launchApplication];
28
28
  [self goToSpringBoardFirstPage];
@@ -37,21 +37,14 @@
37
37
  XCTAssertFalse(self.springboard.icons[@"IntegrationApp"].firstMatch.fb_isVisible);
38
38
  }
39
39
 
40
- - (void)testSpringBoardSubfolder
40
+ - (void)testIconsFromSearchDashboard
41
41
  {
42
- if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad
43
- || SYSTEM_VERSION_GREATER_THAN(@"12.0")) {
44
- return;
42
+ if (FBIntegrationTestCase.isRunningInCI) {
43
+ // Causes: Failure fetching attributes for element <XCAccessibilityElement>
44
+ // Device element: Error Domain=XCTDaemonErrorDomain Code=13 "Value for attribute 5017 is an error."
45
+ XCTSkip(@"Fails with XCTDaemonErrorDomain Code=13 on CI simulators");
45
46
  }
46
- [self launchApplication];
47
- [self goToSpringBoardExtras];
48
- XCTAssertFalse(self.springboard.icons[@"Extras"].otherElements[@"Contacts"].fb_isVisible);
49
- }
50
47
 
51
- - (void)disabled_testIconsFromSearchDashboard
52
- {
53
- // This test causes:
54
- // Failure fetching attributes for element <XCAccessibilityElement: 0x60800044dd10> Device element: Error Domain=XCTDaemonErrorDomain Code=13 "Value for attribute 5017 is an error." UserInfo={NSLocalizedDescription=Value for attribute 5017 is an error.}
55
48
  [self launchApplication];
56
49
  [self goToSpringBoardDashboard];
57
50
  XCTAssertFalse(self.springboard.icons[@"Reminders"].fb_isVisible);
@@ -61,7 +61,7 @@
61
61
  @"FIXME: Unstable on platform version 27.");
62
62
 
63
63
  if (![XCUIDevice sharedDevice].supportsPressureInteraction) {
64
- return;
64
+ XCTSkip(@"Device does not support pressure interaction");
65
65
  }
66
66
 
67
67
  [self verifyForceTapWithOrientation:UIDeviceOrientationPortrait];
@@ -70,7 +70,7 @@
70
70
  - (void)testForceTapInLandscapeLeft
71
71
  {
72
72
  if (![XCUIDevice sharedDevice].supportsPressureInteraction) {
73
- return;
73
+ XCTSkip(@"Device does not support pressure interaction");
74
74
  }
75
75
 
76
76
  [self verifyForceTapWithOrientation:UIDeviceOrientationLandscapeLeft];
@@ -79,7 +79,7 @@
79
79
  - (void)testForceTapInLandscapeRight
80
80
  {
81
81
  if (![XCUIDevice sharedDevice].supportsPressureInteraction) {
82
- return;
82
+ XCTSkip(@"Device does not support pressure interaction");
83
83
  }
84
84
 
85
85
  [self verifyForceTapWithOrientation:UIDeviceOrientationLandscapeRight];
@@ -28,6 +28,13 @@ extern NSArray<NSString *> *const FBMainViewButtonLabels;
28
28
  @property (nonatomic, strong, readonly) XCUIApplication *testedApplication;
29
29
  @property (nonatomic, strong, readonly) XCUIApplication *springboard;
30
30
 
31
+ /**
32
+ Whether tests are running under CI, as forwarded into the test process by the
33
+ scheme's CI environment variable (see Fastlane/Fastfile). Use to XCTSkip tests
34
+ that are known to be too slow/flaky/unsupported for CI.
35
+ */
36
+ + (BOOL)isRunningInCI;
37
+
31
38
  /**
32
39
  Launches application and resets side effects of testing like orientation etc.
33
40
  */
@@ -53,11 +60,6 @@ extern NSArray<NSString *> *const FBMainViewButtonLabels;
53
60
  */
54
61
  - (void)goToSpringBoardFirstPage;
55
62
 
56
- /**
57
- Navigates to SpringBoard path with Extras folder
58
- */
59
- - (void)goToSpringBoardExtras;
60
-
61
63
  /**
62
64
  Navigates to SpringBoard's dashboard
63
65
  */
@@ -43,6 +43,12 @@ NSArray<NSString *> *const FBMainViewButtonLabels = @[
43
43
 
44
44
  @implementation FBIntegrationTestCase
45
45
 
46
+ + (BOOL)isRunningInCI
47
+ {
48
+ NSString *value = NSProcessInfo.processInfo.environment[@"CI"];
49
+ return nil != value && value.length > 0;
50
+ }
51
+
46
52
  - (void)setUp
47
53
  {
48
54
  // Enable it to get extended XCTest logs printed into the console
@@ -105,14 +111,6 @@ NSArray<NSString *> *const FBMainViewButtonLabels = @[
105
111
  FBAssertWaitTillBecomesTrue(XCUIApplication.fb_systemApplication.icons[@"Calendar"].firstMatch.fb_isVisible);
106
112
  }
107
113
 
108
- - (void)goToSpringBoardExtras
109
- {
110
- [self goToSpringBoardFirstPage];
111
- [self.springboard swipeLeft];
112
- [self.testedApplication fb_waitUntilStable];
113
- FBAssertWaitTillBecomesTrue(self.springboard.icons[@"Extras"].fb_isVisible);
114
- }
115
-
116
114
  - (void)goToSpringBoardDashboard
117
115
  {
118
116
  [self goToSpringBoardFirstPage];
@@ -42,8 +42,12 @@
42
42
  [self.session terminateApplicationWithBundleId:FB_SAFARI_BUNDLE_ID];
43
43
  }
44
44
 
45
- - (void)disabled_testCanHandleSafariInputPrompt
45
+ - (void)testCanHandleSafariInputPrompt
46
46
  {
47
+ if (FBIntegrationTestCase.isRunningInCI) {
48
+ XCTSkip(@"Depends on an external website (w3schools.com), unreliable on CI");
49
+ }
50
+
47
51
  XCUIElement *urlInput = [[self.safariApp
48
52
  descendantsMatchingType:XCUIElementTypeTextField]
49
53
  matchingPredicate:[
@@ -52,8 +52,7 @@
52
52
  - (void)testSimpleScroll
53
53
  {
54
54
  if (SYSTEM_VERSION_LESS_THAN(@"16.0")) {
55
- // This test is unstable in CI env
56
- return;
55
+ XCTSkip(@"Requires iOS 16.0+");
57
56
  }
58
57
 
59
58
  FBAssertVisibleCell(@"0");
@@ -90,8 +89,7 @@
90
89
  - (void)testNativeFarScrollToVisible
91
90
  {
92
91
  if (SYSTEM_VERSION_LESS_THAN(@"16.0")) {
93
- // This test is unstable in CI env
94
- return;
92
+ XCTSkip(@"Requires iOS 16.0+");
95
93
  }
96
94
 
97
95
  NSString *cellName = @"80";
@@ -114,8 +112,7 @@
114
112
  XCTAssertTrue(element.fb_isVisible);
115
113
 
116
114
  if (SYSTEM_VERSION_LESS_THAN(@"16.0")) {
117
- // This test is unstable in CI env
118
- return;
115
+ XCTSkip(@"Requires iOS 16.0+");
119
116
  }
120
117
 
121
118
  [element tap];
@@ -32,9 +32,8 @@
32
32
  {
33
33
  XCTSkip(@"Failed on Azure Pipeline. Local run succeeded.");
34
34
 
35
- // Video recording is only available since iOS 17
36
35
  if (SYSTEM_VERSION_LESS_THAN(@"17.0")) {
37
- return;
36
+ XCTSkip(@"Video recording is only available since iOS 17");
38
37
  }
39
38
 
40
39
  FBScreenRecordingRequest *recordingRequest = [[FBScreenRecordingRequest alloc] initWithFps:24
@@ -32,7 +32,7 @@
32
32
  - (void)testVoiceOverUnavailableOnOlderSDK
33
33
  {
34
34
  if ([XCUIDevice.sharedDevice fb_isVoiceOverServiceAvailable]) {
35
- return;
35
+ XCTSkip(@"Only applicable when the VoiceOver service is unavailable");
36
36
  }
37
37
 
38
38
  NSError *error = nil;
@@ -44,10 +44,10 @@
44
44
  - (void)testVoiceOverEnableDisableAndNavigation
45
45
  {
46
46
  if (SYSTEM_VERSION_LESS_THAN(@"27.0")) {
47
- return;
47
+ XCTSkip(@"Requires iOS 27.0+");
48
48
  }
49
49
  if (![XCUIDevice.sharedDevice fb_isVoiceOverServiceAvailable]) {
50
- return;
50
+ XCTSkip(@"VoiceOver service is unavailable on this device");
51
51
  }
52
52
 
53
53
  [self launchApplication];
@@ -78,10 +78,10 @@
78
78
  - (void)testVoiceOverMoveBackward
79
79
  {
80
80
  if (SYSTEM_VERSION_LESS_THAN(@"27.0")) {
81
- return;
81
+ XCTSkip(@"Requires iOS 27.0+");
82
82
  }
83
83
  if (![XCUIDevice.sharedDevice fb_isVoiceOverServiceAvailable]) {
84
- return;
84
+ XCTSkip(@"VoiceOver service is unavailable on this device");
85
85
  }
86
86
 
87
87
  [self launchApplication];
@@ -368,7 +368,7 @@
368
368
  - (void)testForceTap
369
369
  {
370
370
  if (![XCUIDevice.sharedDevice supportsPressureInteraction]) {
371
- return;
371
+ XCTSkip(@"Device does not support pressure interaction");
372
372
  }
373
373
 
374
374
  NSArray<NSDictionary<NSString *, id> *> *gesture =
@@ -32,7 +32,7 @@
32
32
  - (void)testErroneousGestures
33
33
  {
34
34
  if (![XCPointerEvent.class fb_areKeyEventsSupported]) {
35
- return;
35
+ XCTSkip(@"Key events are not supported on this platform");
36
36
  }
37
37
 
38
38
  NSArray<NSArray<NSDictionary<NSString *, id> *> *> *invalidGestures =
@@ -121,7 +121,7 @@
121
121
  - (void)testTextTyping
122
122
  {
123
123
  if (![XCPointerEvent.class fb_areKeyEventsSupported]) {
124
- return;
124
+ XCTSkip(@"Key events are not supported on this platform");
125
125
  }
126
126
 
127
127
  XCUIElement *textField = self.testedApplication.textFields[@"aIdentifier"];
@@ -160,7 +160,7 @@
160
160
  - (void)testTextTypingWithEmptyActions
161
161
  {
162
162
  if (![XCPointerEvent.class fb_areKeyEventsSupported]) {
163
- return;
163
+ XCTSkip(@"Key events are not supported on this platform");
164
164
  }
165
165
 
166
166
  XCUIElement *textField = self.testedApplication.textFields[@"aIdentifier"];
@@ -124,7 +124,7 @@ void calculateMaxTreeDepth(NSDictionary *tree, NSNumber *currentDepth, NSNumber*
124
124
  - (void)testAccessbilityAudit
125
125
  {
126
126
  if (SYSTEM_VERSION_LESS_THAN(@"17.0")) {
127
- return;
127
+ XCTSkip(@"Requires iOS 17.0+");
128
128
  }
129
129
 
130
130
  NSError *error;
@@ -90,7 +90,7 @@
90
90
  {
91
91
  NSString *adderss = [XCUIDevice sharedDevice].fb_wifiIPAddress;
92
92
  if (!adderss) {
93
- return;
93
+ XCTSkip(@"No WiFi IP address available on this device");
94
94
  }
95
95
  NSRange range = [adderss rangeOfString:@"^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})" options:NSRegularExpressionSearch];
96
96
  XCTAssertTrue(range.location != NSNotFound);
@@ -119,7 +119,7 @@
119
119
  - (void)testUrlSchemeActivation
120
120
  {
121
121
  if (SYSTEM_VERSION_LESS_THAN(@"16.4")) {
122
- return;
122
+ XCTSkip(@"Requires iOS 16.4+");
123
123
  }
124
124
 
125
125
  NSError *error;
@@ -131,7 +131,7 @@
131
131
  - (void)testUrlSchemeActivationWithApp
132
132
  {
133
133
  if (SYSTEM_VERSION_LESS_THAN(@"16.4")) {
134
- return;
134
+ XCTSkip(@"Requires iOS 16.4+");
135
135
  }
136
136
 
137
137
  NSError *error;
@@ -146,7 +146,7 @@
146
146
  - (void)testSimulatedLocationSetup
147
147
  {
148
148
  if (SYSTEM_VERSION_LESS_THAN(@"16.4")) {
149
- return;
149
+ XCTSkip(@"Requires iOS 16.4+");
150
150
  }
151
151
 
152
152
  CLLocation *simulatedLocation = [[CLLocation alloc] initWithLatitude:50 longitude:50];
@@ -226,7 +226,7 @@
226
226
  - (void)testAppearance
227
227
  {
228
228
  if (SYSTEM_VERSION_LESS_THAN(@"15.0")) {
229
- return;
229
+ XCTSkip(@"Requires iOS 15.0+");
230
230
  }
231
231
  NSError *error;
232
232
  XCTAssertTrue([XCUIDevice.sharedDevice fb_setAppearance:FBUIInterfaceAppearanceDark error:&error]);
@@ -21,6 +21,7 @@
21
21
  #import "XCUIElement+FBResolve.h"
22
22
  #import "FBXPath.h"
23
23
  #import "FBXCodeCompatibility.h"
24
+ #import "XCUIElement+FBUtilities.h"
24
25
 
25
26
  @interface XCUIElementFBFindTests : FBIntegrationTestCase
26
27
  @property (nonatomic, strong) XCUIElement *testedView;
@@ -536,3 +537,24 @@
536
537
  }
537
538
 
538
539
  @end
540
+
541
+ @interface XCUIElementFBFindTests_StaleAppSnapshot : FBIntegrationTestCase
542
+ @end
543
+ @implementation XCUIElementFBFindTests_StaleAppSnapshot
544
+
545
+ // Regression test for https://github.com/appium/appium/issues/22672.
546
+ - (void)testClassChainWithIntermediatePositionAfterStaleAppSnapshot
547
+ {
548
+ [self launchApplication];
549
+ // Simulates a stale snapshot cached by an earlier, unrelated command (e.g. GET /source).
550
+ [self.testedApplication fb_customSnapshot];
551
+ [self goToDeepHierarchyPage];
552
+
553
+ NSString *query = @"**/XCUIElementTypeOther[`label == \"View 10\"`][1]/**/XCUIElementTypeOther[`label BEGINSWITH \"View 19\"`]";
554
+ NSArray<XCUIElement *> *matches = [self.testedApplication fb_descendantsMatchingClassChain:query
555
+ shouldReturnAfterFirstMatch:NO];
556
+ XCTAssertEqual(matches.count, 1);
557
+ XCTAssertEqualObjects(matches.firstObject.label, @"View 19");
558
+ }
559
+
560
+ @end
@@ -11,6 +11,16 @@ export interface WDASettings {
11
11
  keyboardAutocorrection?: boolean;
12
12
  keyboardPrediction?: boolean;
13
13
  customSnapshotTimeout?: number;
14
+ accessibilityDeadline?: number;
15
+ enforceCustomSnapshots?: boolean;
16
+ limitXPathContextScope?: boolean;
17
+ includeHittableInPageSource?: boolean;
18
+ includeNativeFrameInPageSource?: boolean;
19
+ includeNativeAccessibilityElementInPageSource?: boolean;
20
+ includeMinMaxValueInPageSource?: boolean;
21
+ includeCustomActionsInPageSource?: boolean;
22
+ respectSystemAlerts?: boolean;
23
+ autoClickAlertSelector?: string;
14
24
  snapshotMaxDepth?: number;
15
25
  snapshotMaxChildren?: number;
16
26
  useFirstMatch?: boolean;
@@ -46,6 +56,7 @@ export interface WDACapabilities {
46
56
  forceSimulatorSoftwareKeyboardPresence?: boolean;
47
57
  defaultAlertAction?: 'accept' | 'dismiss';
48
58
  appLaunchStateTimeoutSec?: number;
59
+ accessibilityDeadline?: number;
49
60
  }
50
61
  export interface WebDriverAgentArgs {
51
62
  device: AppleDevice;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
package/lib/types.ts CHANGED
@@ -13,6 +13,16 @@ export interface WDASettings {
13
13
  keyboardAutocorrection?: boolean;
14
14
  keyboardPrediction?: boolean;
15
15
  customSnapshotTimeout?: number;
16
+ accessibilityDeadline?: number;
17
+ enforceCustomSnapshots?: boolean;
18
+ limitXPathContextScope?: boolean;
19
+ includeHittableInPageSource?: boolean;
20
+ includeNativeFrameInPageSource?: boolean;
21
+ includeNativeAccessibilityElementInPageSource?: boolean;
22
+ includeMinMaxValueInPageSource?: boolean;
23
+ includeCustomActionsInPageSource?: boolean;
24
+ respectSystemAlerts?: boolean;
25
+ autoClickAlertSelector?: string;
16
26
  snapshotMaxDepth?: number;
17
27
  snapshotMaxChildren?: number;
18
28
  useFirstMatch?: boolean;
@@ -50,6 +60,7 @@ export interface WDACapabilities {
50
60
  forceSimulatorSoftwareKeyboardPresence?: boolean;
51
61
  defaultAlertAction?: 'accept' | 'dismiss';
52
62
  appLaunchStateTimeoutSec?: number;
63
+ accessibilityDeadline?: number;
53
64
  }
54
65
 
55
66
  export interface WebDriverAgentArgs {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-webdriveragent",
3
- "version": "16.8.0",
3
+ "version": "16.9.1",
4
4
  "description": "Package bundling WebDriverAgent",
5
5
  "keywords": [
6
6
  "Appium",