@devicelab/maestro-runner-darwin-arm64 1.1.27 → 1.1.28

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 (699) hide show
  1. package/README.md +31 -19
  2. package/bin/maestro-runner +0 -0
  3. package/drivers/LICENSE-BINARIES.md +38 -0
  4. package/drivers/android/devicelab-android-driver.apk +0 -0
  5. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner.xcodeproj/project.pbxproj +38 -14
  6. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h +3 -0
  7. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerAXSnapshotBridge.h +51 -0
  8. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerAXSnapshotBridge.m +439 -0
  9. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerDefaults.h +12 -0
  10. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerDefaults.m +59 -0
  11. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+AXSnapshotFallback.swift +128 -0
  12. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift +68 -14
  13. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift +256 -48
  14. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Lifecycle.swift +102 -6
  15. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift +74 -1
  16. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Settle.swift +89 -0
  17. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift +279 -82
  18. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift +1 -1
  19. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Transport.swift +7 -2
  20. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests.swift +44 -10
  21. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerXCTestTimeouts.h +87 -0
  22. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerXCTestTimeouts.m +207 -0
  23. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SnapshotParams.m +22 -6
  24. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h +23 -0
  25. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m +77 -30
  26. package/drivers/ios/DevicelabIOSRunner/PROTOCOL.md +26 -3
  27. package/drivers/ios/WebDriverAgent/.editorconfig +11 -0
  28. package/drivers/ios/WebDriverAgent/.github/dependabot.yml +1 -1
  29. package/drivers/ios/WebDriverAgent/.github/workflows/functional-test.yml +65 -24
  30. package/drivers/ios/WebDriverAgent/.github/workflows/publish.js.yml +15 -8
  31. package/drivers/ios/WebDriverAgent/.github/workflows/unit-test.yml +4 -2
  32. package/drivers/ios/WebDriverAgent/.github/workflows/wda-package.yml +9 -2
  33. package/drivers/ios/WebDriverAgent/.github/workflows/wda-tests.yml +54 -29
  34. package/drivers/ios/WebDriverAgent/CHANGELOG.md +546 -0
  35. package/drivers/ios/WebDriverAgent/Fastlane/Fastfile +8 -1
  36. package/drivers/ios/WebDriverAgent/Gemfile +1 -0
  37. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/CDStructures.h +5 -26
  38. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSFastEnumeration-Protocol.h +23 -0
  39. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCAXClient_iOS.h +80 -44
  40. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationQuery.h +18 -11
  41. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDebugLogDelegate-Protocol.h +17 -5
  42. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEvent.h +52 -19
  43. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEventPath.h +55 -33
  44. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSynthesizedEventRecord.h +44 -21
  45. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAggregateSuiteRunStatistics.h +38 -0
  46. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAttachmentManager.h +33 -0
  47. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTCapabilities.h +35 -0
  48. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTCapabilitiesProviding-Protocol.h +23 -0
  49. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSetTransformer-Protocol.h +30 -13
  50. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSnapshotAttributeDataSource-Protocol.h +33 -0
  51. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSnapshotProvider-Protocol.h +23 -0
  52. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTExpectedFailureContextManager.h +35 -0
  53. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTFuture.h +45 -0
  54. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTHarnessEventReporting-Protocol.h +29 -0
  55. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTIssue.h +49 -0
  56. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTIssueHandling-Protocol.h +26 -0
  57. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMacCatalystStatusProviding-Protocol.h +23 -0
  58. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMeasureOptions.h +48 -0
  59. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMemoryChecker.h +50 -0
  60. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMemoryCheckerDelegate-Protocol.h +26 -0
  61. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_IDEToRunner-Protocol.h +27 -0
  62. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToDaemon-Protocol.h +39 -0
  63. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToIDE-Protocol.h +32 -0
  64. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ActivityReporting-Protocol.h +24 -0
  65. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_AttachmentFutureResultStatusUpdating-Protocol.h +23 -0
  66. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_BundleRequesting-Protocol.h +24 -0
  67. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_CapabilityExchange-Protocol.h +56 -0
  68. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_DebugLogging-Protocol.h +23 -0
  69. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_EventSynthesis-Protocol.h +34 -0
  70. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ForcePressureSupportQuerying-Protocol.h +25 -0
  71. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_HIDEventRecording-Protocol.h +25 -0
  72. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_MemoryTesting-Protocol.h +23 -0
  73. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_PerformanceMeasurementReporting-Protocol.h +23 -0
  74. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ProcessMonitoring-Protocol.h +25 -0
  75. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ProtectedResourceAuthorization-Protocol.h +22 -0
  76. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ScreenRecording-Protocol.h +24 -0
  77. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SelfDiagnosisIssueReporting-Protocol.h +23 -0
  78. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SignpostRequesting-Protocol.h +24 -0
  79. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SiriAutomation-Protocol.h +27 -0
  80. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SystemConfiguration-Protocol.h +27 -0
  81. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TelemetrySending-Protocol.h +23 -0
  82. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TestExecution-Protocol.h +28 -0
  83. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TestReporting-Protocol.h +40 -0
  84. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomation-Protocol.h +29 -0
  85. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomationRunnerEventReporting-Protocol.h +27 -0
  86. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UserPresence-Protocol.h +24 -0
  87. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetricDiagnosticHelper.h +49 -0
  88. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectationObject-Protocol.h +15 -7
  89. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTPromise.h +30 -0
  90. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRemoteSignpostListenerProxy-Protocol.h +29 -0
  91. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRepetitionPolicy.h +43 -0
  92. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSession.h +50 -0
  93. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionConfiguration-Protocol.h +27 -0
  94. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionIssueReporter-Protocol.h +23 -0
  95. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionTestContainer-Protocol.h +26 -0
  96. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionTestReporter.h +51 -0
  97. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession-Protocol.h +38 -0
  98. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSession.h +76 -78
  99. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSessionUIAutomationDelegate-Protocol.h +33 -0
  100. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESession.h +87 -53
  101. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESessionDelegate-Protocol.h +24 -0
  102. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRuntimeDiagnosticsPolicy.h +36 -0
  103. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRuntimeIssueDetectionPolicy.h +39 -0
  104. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTScreenCapturePolicy.h +35 -0
  105. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSignpostListener-Protocol.h +25 -0
  106. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSkippedTestContext.h +37 -0
  107. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSourceCodeContext.h +39 -0
  108. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSourceCodeLocation.h +31 -0
  109. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTagSelection.h +41 -0
  110. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestIdentifier.h +81 -0
  111. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestIdentifierSet.h +54 -0
  112. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestSelection.h +35 -0
  113. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiter.h +45 -46
  114. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManagement-Protocol.h +17 -6
  115. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager-Protocol.h +25 -0
  116. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterWait.h +40 -0
  117. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTest.h +47 -28
  118. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCase.h +165 -87
  119. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseDiscoveryUIAutomationDelegate-Protocol.h +20 -0
  120. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseRun.h +19 -9
  121. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseUIAutomationDelegate-Protocol.h +25 -0
  122. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCastMethodNamesUIAutomationDelegate-Protocol.h +24 -0
  123. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestConfiguration.h +83 -55
  124. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriver.h +54 -28
  125. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectation.h +37 -26
  126. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationDelegate-Protocol.h +15 -6
  127. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservationCenter.h +49 -25
  128. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestRun.h +33 -28
  129. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAXNotificationHandling-Protocol.h +25 -0
  130. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAccessibilityInterface-Protocol.h +58 -0
  131. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAlertMonitoring-Protocol.h +27 -0
  132. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplication.h +87 -49
  133. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationAutomationSessionProviding-Protocol.h +26 -0
  134. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImpl.h +78 -26
  135. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImplReporter-Protocol.h +26 -0
  136. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationManaging-Protocol.h +23 -0
  137. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationMonitor-Protocol.h +43 -0
  138. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationOpenRequest.h +34 -0
  139. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationPlatformServicesProviderDelegate-Protocol.h +25 -0
  140. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcess.h +89 -69
  141. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessDelegate-Protocol.h +25 -0
  142. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessManaging-Protocol.h +26 -0
  143. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessTracker-Protocol.h +28 -0
  144. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationRegistry.h +32 -0
  145. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIButtonConsole.h +26 -0
  146. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUICoordinate.h +37 -32
  147. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDevice.h +121 -17
  148. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceAutomationModeInterface-Protocol.h +25 -0
  149. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceDelayedAttachmentTransferSupportInterface-Protocol.h +22 -0
  150. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceEventAndStateInterface-Protocol.h +40 -0
  151. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElement.h +192 -59
  152. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAttributesPrivate-Protocol.h +26 -0
  153. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementEventTarget-Protocol.h +38 -0
  154. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementQuery.h +154 -58
  155. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementTypeQueryProvider_Private-Protocol.h +24 -0
  156. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIEventRecording-Protocol.h +37 -0
  157. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIHitPointResult.h +16 -11
  158. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIInterruptionMonitoring-Protocol.h +27 -0
  159. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIIssueDiagnosticsProviding-Protocol.h +23 -0
  160. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIKnobControl.h +26 -0
  161. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUILocation.h +24 -0
  162. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIPlatformApplicationServicesProviding-Protocol.h +33 -0
  163. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteAccessibilityInterface-Protocol.h +45 -0
  164. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteDeviceRunner-Protocol.h +24 -0
  165. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteSiriInterface-Protocol.h +30 -0
  166. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIResetAuthorizationStatusOfProtectedResourcesInterface-Protocol.h +22 -0
  167. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreen.h +45 -19
  168. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreenDataSource-Protocol.h +28 -12
  169. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUISiriService.h +39 -0
  170. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUISystem.h +26 -0
  171. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIXcodeApplicationManaging-Protocol.h +27 -0
  172. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_TtC10XCTestCore19XCTReportingContext.h +26 -0
  173. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTMessaging_VoidProtocol-Protocol.h +20 -0
  174. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationInternal-Protocol.h +26 -0
  175. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationPrivate-Protocol.h +27 -0
  176. package/drivers/ios/WebDriverAgent/README.md +0 -10
  177. package/drivers/ios/WebDriverAgent/Scripts/build-webdriveragent.mjs +30 -22
  178. package/drivers/ios/WebDriverAgent/Scripts/build.sh +14 -1
  179. package/drivers/ios/WebDriverAgent/Scripts/embed-runner-icon.sh +118 -0
  180. package/drivers/ios/WebDriverAgent/Scripts/fetch-prebuilt-wda.mjs +34 -22
  181. package/drivers/ios/WebDriverAgent/Scripts/update-wda-version.mjs +12 -10
  182. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/project.pbxproj +2583 -659
  183. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp.xcscheme +1 -1
  184. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp_tvOS.xcscheme +78 -0
  185. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp_watchOS.xcscheme +78 -0
  186. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_1.xcscheme +8 -1
  187. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_2.xcscheme +8 -1
  188. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_3.xcscheme +8 -1
  189. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_tvOS.xcscheme +93 -0
  190. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_watchOS.xcscheme +93 -0
  191. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib.xcscheme +1 -1
  192. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_tvOS.xcscheme +1 -1
  193. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_watchOS.xcscheme +85 -0
  194. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner-nodebug.xcscheme +1 -1
  195. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner.xcscheme +20 -2
  196. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_tvOS.xcscheme +1 -1
  197. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_watchOS.xcscheme +128 -0
  198. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSDictionary+FBUtf8SafeDictionary.m +45 -27
  199. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.h +1 -0
  200. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.m +91 -0
  201. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.h +27 -3
  202. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.m +125 -55
  203. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.h +15 -0
  204. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +32 -3
  205. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.m +2 -3
  206. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplicationProcess+FBQuiescence.m +9 -16
  207. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.h +47 -4
  208. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.m +173 -83
  209. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.h +9 -1
  210. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.m +45 -5
  211. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.h +66 -0
  212. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.m +218 -0
  213. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.m +144 -3
  214. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBFind.m +1 -1
  215. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBForceTouch.m +5 -2
  216. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBPickerWheel.m +4 -3
  217. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.m +113 -50
  218. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTVFocuse.m +5 -5
  219. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.h +33 -0
  220. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.m +39 -5
  221. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUtilities.m +9 -7
  222. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBVisibleFrame.m +12 -3
  223. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.m +6 -1
  224. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElementQuery+FBHelpers.m +1 -0
  225. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBAlertViewCommands.m +10 -36
  226. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBCustomCommands.m +155 -8
  227. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBElementCommands.m +45 -19
  228. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBFindElementCommands.m +7 -7
  229. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBOrientationCommands.m +9 -2
  230. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBScreenshotCommands.m +3 -3
  231. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBSessionCommands.m +220 -296
  232. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.h +43 -30
  233. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.m +273 -93
  234. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Info.plist +2 -2
  235. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElement.h +3 -0
  236. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptionHandler.m +8 -1
  237. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.h +9 -0
  238. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.m +3 -0
  239. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPServer.h +97 -0
  240. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPServer.m +932 -0
  241. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponseJSONPayload.m +2 -3
  242. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponsePayload.m +1 -1
  243. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.h +9 -0
  244. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.m +9 -0
  245. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.h +9 -0
  246. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.m +28 -12
  247. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingRequest.m +1 -1
  248. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.h +16 -0
  249. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.m +252 -42
  250. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.h +57 -9
  251. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.m +183 -33
  252. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.h +18 -2
  253. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m +92 -37
  254. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshot.h +1 -1
  255. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteRequest.h +28 -0
  256. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteRequest.m +25 -0
  257. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteResponse.h +30 -0
  258. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteResponse.m +54 -0
  259. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBActiveAppDetectionPoint.m +10 -2
  260. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAlertsMonitor.m +21 -5
  261. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.h +2 -1
  262. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.m +3 -3
  263. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.h +1 -3
  264. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.m +0 -1
  265. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBClassChainQueryParser.m +1 -1
  266. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.h +106 -136
  267. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.m +150 -386
  268. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m +6 -0
  269. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageProcessor.m +54 -29
  270. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBLogger.m +2 -2
  271. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMacros.h +14 -5
  272. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.h +54 -1
  273. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.m +48 -2
  274. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.h +12 -0
  275. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.m +119 -24
  276. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.h +1 -1
  277. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.m +9 -5
  278. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.h +10 -0
  279. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.m +32 -0
  280. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreenshot.m +3 -3
  281. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.h +3 -1
  282. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.m +3 -1
  283. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettingsHandler.h +35 -0
  284. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettingsHandler.m +374 -0
  285. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker-Private.h +10 -0
  286. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.h +29 -4
  287. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.m +62 -27
  288. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.h +1 -1
  289. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.m +28 -10
  290. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.h +124 -2
  291. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +142 -21
  292. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.h +2 -2
  293. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.m +22 -19
  294. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.h +1 -8
  295. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.m +57 -27
  296. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath-Private.h +5 -0
  297. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath.m +69 -14
  298. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPathExtensions.h +40 -0
  299. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPathExtensions.m +418 -0
  300. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.h +2 -2
  301. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.m +54 -34
  302. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/WebDriverAgentLib.h +1 -0
  303. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
  304. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/icon-1024.png +0 -0
  305. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/Contents.json +6 -0
  306. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/UITestingUITests.m +7 -7
  307. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/COORDINATE_PROBE.md +50 -0
  308. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBCoordinateProbeViewController.h +4 -0
  309. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBCoordinateProbeViewController.m +176 -0
  310. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBScrollViewController.m +15 -2
  311. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchViewController.h +1 -1
  312. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.h +2 -1
  313. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.m +14 -3
  314. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/ViewController.m +44 -3
  315. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Info.plist +2 -2
  316. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Resources/Base.lproj/Main.storyboard +52 -22
  317. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/AppDelegate.h +13 -0
  318. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/AppDelegate.m +26 -0
  319. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/Info.plist +41 -0
  320. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/SceneDelegate.h +15 -0
  321. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/SceneDelegate.m +22 -0
  322. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/ViewController.h +13 -0
  323. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/ViewController.m +79 -0
  324. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/main.m +17 -0
  325. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_watchOS/ContentView.swift +31 -0
  326. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_watchOS/WatchSpikeApp.swift +18 -0
  327. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +37 -56
  328. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAutoAlertsHandlerTests.m +10 -4
  329. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBConfigurationTests.m +41 -8
  330. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementAttributeTests.m +10 -1
  331. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementSwipingTests.m +4 -4
  332. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementVisibilityTests.m +14 -19
  333. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBForceTouchTests.m +6 -3
  334. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationAppTests.m +87 -0
  335. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.h +30 -5
  336. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.m +51 -15
  337. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBPasteboardTests.m +3 -2
  338. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +6 -2
  339. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScreenTests.m +28 -1
  340. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScrollingTests.m +3 -6
  341. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBTapTest.m +83 -0
  342. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVideoRecordingTests.m +1 -2
  343. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVoiceOverTests.m +103 -0
  344. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CMultiTouchActionsIntegrationTests.m +35 -0
  345. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTouchActionsIntegrationTests.m +96 -13
  346. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTypeActionsTests.m +3 -3
  347. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBXPathIntegrationTests.m +108 -5
  348. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCElementSnapshotHelperTests.m +1 -7
  349. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIApplicationHelperTests.m +1 -1
  350. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceHelperTests.m +21 -5
  351. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceRotationTests.m +21 -0
  352. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementAttributesTests.m +5 -5
  353. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementFBFindTests.m +98 -10
  354. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_tvOS/FBTVFocusIntegrationTests.m +84 -0
  355. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_tvOS/Info.plist +24 -0
  356. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/IntegrationTests_watchOS-Bridging-Header.h +23 -0
  357. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAAlertIntegrationTests.swift +25 -0
  358. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAAppLifecycleIntegrationTests.swift +37 -0
  359. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAClickIntegrationTests.swift +25 -0
  360. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDADeviceIntegrationTests.swift +92 -0
  361. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAElementAttributeIntegrationTests.swift +39 -0
  362. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAFindIntegrationTests.swift +101 -0
  363. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAMjpegStreamingIntegrationTests.swift +81 -0
  364. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAScreenshotAndSourceIntegrationTests.swift +54 -0
  365. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDATypingIntegrationTests.swift +73 -0
  366. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAWatchInProcessTestCase.swift +51 -0
  367. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.h +4 -0
  368. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.m +10 -0
  369. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBConfigurationTests.m +18 -6
  370. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBCustomCommandsTests.m +83 -0
  371. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBHTTPServerSessionTests.m +133 -0
  372. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBHTTPServerTests.m +264 -0
  373. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBMathUtilsTests.m +38 -0
  374. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBResponseJSONPayloadTests.m +76 -0
  375. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBSessionTests.m +3 -3
  376. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBTouchableViewTests.m +121 -0
  377. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXCAXClientProxyTests.m +90 -0
  378. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXPathTests.m +127 -2
  379. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/NSDictionaryFBUtf8SafeTests.m +43 -0
  380. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCAccessibilityElementDouble.h +27 -0
  381. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCAccessibilityElementDouble.m +23 -0
  382. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCElementSnapshotDouble.h +43 -0
  383. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCElementSnapshotDouble.m +24 -0
  384. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.h +1 -0
  385. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.m +1 -0
  386. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/FBTVNavigationTrackerTests.m +48 -0
  387. package/drivers/ios/WebDriverAgent/lib/check-dependencies.ts +42 -21
  388. package/drivers/ios/WebDriverAgent/lib/constants.ts +12 -2
  389. package/drivers/ios/WebDriverAgent/lib/index.ts +7 -0
  390. package/drivers/ios/WebDriverAgent/lib/logger.ts +1 -1
  391. package/drivers/ios/WebDriverAgent/lib/no-session-proxy.ts +8 -14
  392. package/drivers/ios/WebDriverAgent/lib/types.ts +108 -8
  393. package/drivers/ios/WebDriverAgent/lib/utils/index.ts +15 -0
  394. package/drivers/ios/WebDriverAgent/lib/utils/module.ts +24 -0
  395. package/drivers/ios/WebDriverAgent/lib/utils/platform.ts +34 -0
  396. package/drivers/ios/WebDriverAgent/lib/utils/processes.ts +166 -0
  397. package/drivers/ios/WebDriverAgent/lib/utils/security.ts +13 -0
  398. package/drivers/ios/WebDriverAgent/lib/utils/xctestrun.ts +173 -0
  399. package/drivers/ios/WebDriverAgent/lib/wda-strategies.ts +333 -0
  400. package/drivers/ios/WebDriverAgent/lib/webdriveragent.ts +336 -428
  401. package/drivers/ios/WebDriverAgent/lib/xcodebuild.ts +232 -127
  402. package/drivers/ios/WebDriverAgent/oxfmt.config.mjs +6 -0
  403. package/drivers/ios/WebDriverAgent/oxlint.config.mjs +6 -0
  404. package/drivers/ios/WebDriverAgent/package.json +70 -79
  405. package/drivers/ios/WebDriverAgent/release.config.mjs +14 -0
  406. package/drivers/ios/WebDriverAgent/test/functional/desired.ts +10 -6
  407. package/drivers/ios/WebDriverAgent/test/functional/helpers/simulator.ts +39 -28
  408. package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e.spec.ts +100 -0
  409. package/drivers/ios/WebDriverAgent/test/unit/processes.spec.ts +99 -0
  410. package/drivers/ios/WebDriverAgent/test/unit/utils.spec.ts +235 -0
  411. package/drivers/ios/WebDriverAgent/test/unit/wda-cleanup.spec.ts +136 -0
  412. package/drivers/ios/WebDriverAgent/test/unit/webdriveragent.spec.ts +562 -0
  413. package/drivers/ios/WebDriverAgent/tsconfig.json +6 -8
  414. package/drivers/ios/devicelab-ios-agent/README.md +51 -0
  415. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/DevicelabIOSAgent +0 -0
  416. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/Info.plist +0 -0
  417. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/PkgInfo +1 -0
  418. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/DevicelabIOSAgentUITests-Runner +0 -0
  419. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/Info.plist +302 -0
  420. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PkgInfo +1 -0
  421. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/DevicelabIOSAgentUITests +0 -0
  422. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/Info.plist +0 -0
  423. package/drivers/ios/devicelab-ios-agent/device/agent.xctestrun +120 -0
  424. package/drivers/ios/devicelab-ios-agent/device/manifest.json +18 -0
  425. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub/StubApp.swift +10 -0
  426. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/project.pbxproj +394 -0
  427. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  428. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/xcshareddata/xcschemes/SigningStubUITests.xcscheme +100 -0
  429. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStubUITests/StubUITests.swift +8 -0
  430. package/drivers/ios/devicelab-ios-agent/signing-stub/project.yml +64 -0
  431. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/DevicelabIOSAgent +0 -0
  432. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/Info.plist +0 -0
  433. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/PkgInfo +1 -0
  434. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/DevicelabIOSAgentUITests-Runner +0 -0
  435. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Info.plist +0 -0
  436. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreGraphics.swiftoverlay +3 -0
  437. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreImage.swiftoverlay +3 -0
  438. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreTransferable.swiftoverlay +3 -0
  439. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/Foundation.swiftoverlay +3 -0
  440. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/UIKit.swiftoverlay +3 -0
  441. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  442. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1431 -0
  443. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  444. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1431 -0
  445. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Testing +0 -0
  446. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/_CodeSignature/CodeResources +212 -0
  447. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/version.plist +18 -0
  448. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/Info.plist +0 -0
  449. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/XCTAutomationSupport +0 -0
  450. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/_CodeSignature/CodeResources +113 -0
  451. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/version.plist +18 -0
  452. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCAbstractTest.h +140 -0
  453. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTActivity.h +33 -0
  454. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachment+XCUIScreenshot.h +32 -0
  455. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachment.h +219 -0
  456. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachmentLifetime.h +28 -0
  457. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTContext.h +65 -0
  458. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTDarwinNotificationExpectation.h +60 -0
  459. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTExpectedFailure.h +134 -0
  460. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTIssue.h +143 -0
  461. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTKVOExpectation.h +110 -0
  462. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMeasureOptions.h +57 -0
  463. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMetric+UIAutomation.h +77 -0
  464. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMetric.h +390 -0
  465. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTNSNotificationExpectation.h +92 -0
  466. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTNSPredicateExpectation.h +74 -0
  467. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTSourceCodeContext.h +109 -0
  468. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTWaiter.h +304 -0
  469. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTest.apinotes +182 -0
  470. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTest.h +41 -0
  471. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestAssertions.h +277 -0
  472. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestAssertionsImpl.h +503 -0
  473. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+AsynchronousTesting.h +276 -0
  474. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+XCUIApplicationLaunchTesting.h +36 -0
  475. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+XCUIInterruptionMonitoring.h +95 -0
  476. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase.h +443 -0
  477. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCaseRun.h +50 -0
  478. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCore.h +42 -0
  479. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestDefines.h +135 -0
  480. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestErrors.h +33 -0
  481. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestExpectation.h +73 -0
  482. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestLog.h +56 -0
  483. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObservation.h +195 -0
  484. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObservationCenter.h +60 -0
  485. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObserver.h +61 -0
  486. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestProbe.h +55 -0
  487. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestRun.h +223 -0
  488. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSkipping.h +41 -0
  489. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSkippingImpl.h +46 -0
  490. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSuite.h +92 -0
  491. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSuiteRun.h +50 -0
  492. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditIssue.h +9 -0
  493. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditTypes.h +9 -0
  494. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIApplication.h +9 -0
  495. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAutomation.h +9 -0
  496. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAutomationDefines.h +9 -0
  497. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUICoordinate.h +9 -0
  498. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDevice.h +9 -0
  499. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDeviceButton.h +9 -0
  500. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDeviceHandGesture.h +9 -0
  501. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElement.h +9 -0
  502. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementAttributes.h +9 -0
  503. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementQuery.h +9 -0
  504. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementTypeQueryProvider.h +9 -0
  505. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementTypes.h +9 -0
  506. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIKeyboardKeys.h +9 -0
  507. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUILocation.h +9 -0
  508. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIProtectedResource.h +9 -0
  509. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIRemote.h +9 -0
  510. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreen.h +9 -0
  511. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreenshot.h +9 -0
  512. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreenshotProviding.h +9 -0
  513. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUISiriService.h +9 -0
  514. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUISystem.h +9 -0
  515. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Info.plist +0 -0
  516. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Modules/module.modulemap +30 -0
  517. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/XCTest +0 -0
  518. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/_CodeSignature/CodeResources +817 -0
  519. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/version.plist +18 -0
  520. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/Info.plist +0 -0
  521. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/XCTestCore +0 -0
  522. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/_CodeSignature/CodeResources +113 -0
  523. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/version.plist +18 -0
  524. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/Info.plist +0 -0
  525. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/XCTestSupport +0 -0
  526. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/_CodeSignature/CodeResources +113 -0
  527. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/version.plist +18 -0
  528. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAccessibilityAuditIssue.h +33 -0
  529. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAccessibilityAuditTypes.h +36 -0
  530. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIApplication.h +154 -0
  531. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomation.apinotes +88 -0
  532. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomation.h +30 -0
  533. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomationDefines.h +62 -0
  534. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUICoordinate.h +99 -0
  535. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDevice.h +133 -0
  536. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDeviceButton.h +40 -0
  537. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDeviceHandGesture.h +24 -0
  538. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElement.h +366 -0
  539. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementAttributes.h +106 -0
  540. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementQuery.h +81 -0
  541. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementTypeQueryProvider.h +109 -0
  542. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementTypes.h +95 -0
  543. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIKeyboardKeys.h +68 -0
  544. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUILocation.h +35 -0
  545. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIProtectedResource.h +52 -0
  546. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIRemote.h +77 -0
  547. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreen.h +36 -0
  548. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreenshot.h +42 -0
  549. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreenshotProviding.h +26 -0
  550. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUISiriService.h +45 -0
  551. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUISystem.h +26 -0
  552. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverOutput.h +26 -0
  553. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverService.h +72 -0
  554. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverServiceError.h +25 -0
  555. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Info.plist +0 -0
  556. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  557. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +30 -0
  558. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  559. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +30 -0
  560. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/module.modulemap +4 -0
  561. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/XCUIAutomation +0 -0
  562. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/_CodeSignature/CodeResources +465 -0
  563. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/version.plist +18 -0
  564. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/Info.plist +0 -0
  565. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/XCUnit +0 -0
  566. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/_CodeSignature/CodeResources +113 -0
  567. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/version.plist +18 -0
  568. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Info.plist +0 -0
  569. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  570. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +41 -0
  571. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  572. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +41 -0
  573. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/_CodeSignature/CodeResources +157 -0
  574. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/_Testing_Foundation +0 -0
  575. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/version.plist +18 -0
  576. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/libXCTestBundleInject.dylib +0 -0
  577. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/libXCTestSwiftSupport.dylib +0 -0
  578. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/lib_TestingInterop.dylib +0 -0
  579. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Info.plist +302 -0
  580. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PkgInfo +1 -0
  581. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/DevicelabIOSAgentUITests +0 -0
  582. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/Info.plist +0 -0
  583. package/drivers/ios/devicelab-ios-agent/simulator/agent.xctestrun +140 -0
  584. package/drivers/ios/devicelab-ios-agent/simulator/manifest.json +162 -0
  585. package/package.json +1 -1
  586. package/drivers/ios/WebDriverAgent/.mocharc.js +0 -4
  587. package/drivers/ios/WebDriverAgent/.releaserc +0 -45
  588. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSString-XCTAdditions.h +0 -11
  589. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSValue-XCTestAdditions.h +0 -11
  590. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIGestureRecognizer-RecordingAdditions.h +0 -11
  591. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UILongPressGestureRecognizer-RecordingAdditions.h +0 -11
  592. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPanGestureRecognizer-RecordingAdditions.h +0 -11
  593. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPinchGestureRecognizer-RecordingAdditions.h +0 -11
  594. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UISwipeGestureRecognizer-RecordingAdditions.h +0 -11
  595. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UITapGestureRecognizer-RecordingAdditions.h +0 -11
  596. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCActivityRecord.h +0 -39
  597. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor.h +0 -44
  598. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor_iOS.h +0 -18
  599. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDeviceEvent.h +0 -27
  600. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCEventGenerator.h +0 -73
  601. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyMappingPath.h +0 -36
  602. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardInputSolver.h +0 -41
  603. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardKeyMap.h +0 -101
  604. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardLayout.h +0 -35
  605. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeRecording.h +0 -42
  606. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNode.h +0 -84
  607. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNodeEnumerator.h +0 -18
  608. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicationRecord.h +0 -29
  609. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicatorHolder.h +0 -14
  610. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAXClient-Protocol.h +0 -14
  611. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity-Protocol.h +0 -16
  612. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity.h +0 -23
  613. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAutomationTarget-Protocol.h +0 -12
  614. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTDarwinNotificationExpectation.h +0 -23
  615. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTKVOExpectation.h +0 -28
  616. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetric.h +0 -29
  617. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSNotificationExpectation.h +0 -27
  618. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectation.h +0 -24
  619. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession.h +0 -21
  620. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSession.h +0 -25
  621. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSessionDelegate-Protocol.h +0 -17
  622. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTUIApplicationMonitor-Protocol.h +0 -17
  623. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegate-Protocol.h +0 -16
  624. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegatePrivate-Protocol.h +0 -12
  625. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager.h +0 -28
  626. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseSuite.h +0 -19
  627. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContext.h +0 -26
  628. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContextScope.h +0 -19
  629. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriverInterface-Protocol.h +0 -14
  630. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationWaiter.h +0 -17
  631. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestLog.h +0 -32
  632. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_IDEInterface-Protocol.h +0 -36
  633. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_ManagerInterface-Protocol.h +0 -54
  634. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_TestsInterface-Protocol.h +0 -12
  635. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestMisuseObserver.h +0 -37
  636. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservation-Protocol.h +0 -20
  637. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObserver.h +0 -20
  638. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestProbe.h +0 -13
  639. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuite.h +0 -48
  640. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuiteRun.h +0 -28
  641. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestWaiter.h +0 -14
  642. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAsynchronousHandlerWrapper.h +0 -19
  643. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementHitPointCoordinate.h +0 -24
  644. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinder.h +0 -65
  645. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinderMatch.h +0 -25
  646. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderTimingMessage.h +0 -20
  647. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderUtilities.h +0 -45
  648. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCInternalTestRun.h +0 -43
  649. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCKVOExpectationImplementation.h +0 -32
  650. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTDarwinNotificationExpectationImplementation.h +0 -27
  651. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSNotificationExpectationImplementation.h +0 -30
  652. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSPredicateExpectationImplementation.h +0 -29
  653. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTWaiterImpl.h +0 -41
  654. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseImplementation.h +0 -70
  655. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseInterruptionException.h +0 -13
  656. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestExpectationImplementation.h +0 -40
  657. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestImplementation.h +0 -14
  658. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationCenterImplementation.h +0 -19
  659. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestSuiteImplementation.h +0 -23
  660. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +0 -1220
  661. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +0 -8812
  662. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.h +0 -1036
  663. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.m +0 -5868
  664. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.h +0 -12
  665. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.m +0 -88
  666. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.h +0 -56
  667. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.m +0 -106
  668. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.h +0 -107
  669. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.m +0 -2238
  670. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPLogging.h +0 -122
  671. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.h +0 -53
  672. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.m +0 -357
  673. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPResponse.h +0 -149
  674. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.h +0 -126
  675. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.m +0 -372
  676. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/LICENSE +0 -18
  677. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.h +0 -13
  678. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.m +0 -83
  679. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.h +0 -9
  680. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m +0 -40
  681. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.h +0 -13
  682. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.m +0 -84
  683. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/LICENSE +0 -19
  684. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.h +0 -18
  685. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.m +0 -11
  686. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.h +0 -16
  687. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.m +0 -50
  688. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.h +0 -20
  689. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.m +0 -66
  690. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.h +0 -5
  691. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.m +0 -142
  692. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.h +0 -55
  693. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.m +0 -303
  694. package/drivers/ios/WebDriverAgent/eslint.config.mjs +0 -13
  695. package/drivers/ios/WebDriverAgent/index.ts +0 -7
  696. package/drivers/ios/WebDriverAgent/lib/utils.ts +0 -342
  697. package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e-specs.ts +0 -119
  698. package/drivers/ios/WebDriverAgent/test/unit/utils-specs.ts +0 -157
  699. package/drivers/ios/WebDriverAgent/test/unit/webdriveragent-specs.ts +0 -446
@@ -9,7 +9,6 @@
9
9
  #import <Foundation/Foundation.h>
10
10
 
11
11
  @class XCUIApplication;
12
- @class XCUIElement;
13
12
 
14
13
  NS_ASSUME_NONNULL_BEGIN
15
14
 
@@ -26,65 +25,79 @@ NS_ASSUME_NONNULL_BEGIN
26
25
  + (instancetype)alertWithApplication:(XCUIApplication *)application;
27
26
 
28
27
  /**
29
- Creates alert helper for given application
30
-
31
- @param element The element which represents the alert
32
- */
33
- + (instancetype)alertWithElement:(XCUIElement *)element;
34
-
35
- /**
36
- Determines whether alert is present
28
+ Determines whether alert is present.
29
+
30
+ An FBAlert instance resolves the alert (and, if found, its snapshot) at
31
+ most once, lazily, on the first call to isPresent, text, buttonLabels,
32
+ accept, dismiss, clickAlertButton:, clickElementMatchingClassChain:, or
33
+ typeText: - every subsequent call on the same instance reuses that result
34
+ rather than re-querying the live UI. This makes an isPresent check
35
+ immediately followed by an action (e.g. the auto-accept flow) act on the
36
+ exact same alert it just observed. Create a fresh FBAlert instance (via
37
+ alertWithApplication:) to observe the current UI state again.
37
38
  */
38
39
  - (BOOL)isPresent;
39
40
 
40
41
  /**
41
- Gets the labels of the buttons visible in the alert
42
+ Gets the labels of the buttons visible in the alert.
43
+ See isPresent for how presence is resolved.
42
44
  */
43
45
  - (nullable NSArray *)buttonLabels;
44
46
 
45
47
  /**
46
- Returns alert's title and description separated by new lines
48
+ Returns alert's title and description separated by new lines.
49
+ See isPresent for how presence is resolved.
47
50
  */
48
51
  - (nullable NSString *)text;
49
52
 
50
53
  /**
51
- Accepts alert, if present
54
+ Accepts alert, if present.
55
+ See isPresent for how presence is resolved.
52
56
 
53
- @param error If there is an error, upon return contains an NSError object that describes the problem.
54
- @return YES if the operation succeeds, otherwise NO.
57
+ @throws FBAlertNotPresentException if no alert is present.
58
+ @throws FBAlertActionFailedException if the accept button could not be found.
55
59
  */
56
- - (BOOL)acceptWithError:(NSError **)error;
60
+ - (void)accept;
57
61
 
58
62
  /**
59
- Dismisses alert, if present
63
+ Dismisses alert, if present.
64
+ See isPresent for how presence is resolved.
60
65
 
61
- @param error If there is an error, upon return contains an NSError object that describes the problem.
62
- @return YES if the operation succeeds, otherwise NO.
66
+ @throws FBAlertNotPresentException if no alert is present.
67
+ @throws FBAlertActionFailedException if the dismiss button could not be found.
63
68
  */
64
- - (BOOL)dismissWithError:(NSError **)error;
69
+ - (void)dismiss;
65
70
 
66
71
  /**
67
- Clicks on an alert button, if present
68
-
72
+ Clicks on an alert button, if present.
73
+ See isPresent for how presence is resolved.
74
+
69
75
  @param label The label of the button on which to click.
70
- @param error If there is an error, upon return contains an NSError object that describes the problem.
71
- @return YES if the operation suceeds, otherwise NO.
76
+ @throws FBAlertNotPresentException if no alert is present.
77
+ @throws FBAlertActionFailedException if no button with the given label could be found.
72
78
  */
73
- - (BOOL)clickAlertButton:(NSString *)label error:(NSError **)error;
79
+ - (void)clickAlertButton:(NSString *)label;
74
80
 
75
81
  /**
76
- XCUElement that represents alert
82
+ Taps the first descendant of the alert matching the given class chain
83
+ selector, if present.
84
+ See isPresent for how presence is resolved.
85
+
86
+ @param classChain The class chain selector to match against the alert's descendants.
87
+ @throws FBAlertNotPresentException if no alert is present.
88
+ @throws FBAlertActionFailedException if no matching element could be found.
77
89
  */
78
- - (nullable XCUIElement *)alertElement;
90
+ - (void)clickElementMatchingClassChain:(NSString *)classChain;
79
91
 
80
92
  /**
81
- Types a text into an input inside the alert container, if it is present
93
+ Types a text into an input inside the alert container, if it is present.
94
+ See isPresent for how presence is resolved.
82
95
 
83
96
  @param text the text to type
84
- @param error If there is an error, upon return contains an NSError object that describes the problem.
85
- @return YES if the operation succeeds, otherwise NO.
97
+ @throws FBAlertNotPresentException if no alert is present.
98
+ @throws FBAlertSetTextFailedException if there is no single input field to type into, or typing itself fails.
86
99
  */
87
- - (BOOL)typeText:(NSString *)text error:(NSError **)error;
100
+ - (void)typeText:(NSString *)text;
88
101
 
89
102
  @end
90
103
 
@@ -9,21 +9,26 @@
9
9
  #import "FBAlert.h"
10
10
 
11
11
  #import "FBConfiguration.h"
12
- #import "FBErrorBuilder.h"
12
+ #import "FBExceptions.h"
13
13
  #import "FBLogger.h"
14
14
  #import "FBXCElementSnapshotWrapper+Helpers.h"
15
15
  #import "FBXCodeCompatibility.h"
16
16
  #import "XCUIApplication.h"
17
17
  #import "XCUIApplication+FBAlert.h"
18
+ #import "XCUIApplication+FBHelpers.h"
18
19
  #import "XCUIElement+FBClassChain.h"
19
20
  #import "XCUIElement+FBTyping.h"
21
+ #import "XCUIElement+FBUID.h"
20
22
  #import "XCUIElement+FBUtilities.h"
21
23
  #import "XCUIElement+FBWebDriverAttributes.h"
22
24
 
23
25
 
24
26
  @interface FBAlert ()
25
27
  @property (nonatomic, strong) XCUIApplication *application;
26
- @property (nonatomic, strong, nullable) XCUIElement *element;
28
+ @property (nonatomic, nullable) XCUIElement *cachedAlertElement;
29
+ @property (nonatomic) BOOL hasCachedAlertElement;
30
+ @property (nonatomic, nullable) id<FBXCElementSnapshot> cachedAlertSnapshot;
31
+ @property (nonatomic) BOOL hasCachedAlertSnapshot;
27
32
  @end
28
33
 
29
34
  @implementation FBAlert
@@ -35,32 +40,81 @@
35
40
  return alert;
36
41
  }
37
42
 
38
- + (instancetype)alertWithElement:(XCUIElement *)element
43
+ // Resolved (and, if found, snapshotted) at most once per instance and then
44
+ // reused for every subsequent call - see FBAlert.h. This is what makes an
45
+ // isPresent check followed by an action (the FBAlertsMonitor/FBSession
46
+ // auto-accept flow) act on the exact same alert it just observed, instead of
47
+ // re-resolving against a UI that may have changed in between.
48
+ - (nullable XCUIElement *)alertElement
39
49
  {
40
- FBAlert *alert = [FBAlert new];
41
- alert.element = element;
42
- alert.application = element.application;
43
- return alert;
50
+ if (!self.hasCachedAlertElement) {
51
+ id<FBXCElementSnapshot> snapshot = nil;
52
+ self.cachedAlertElement = [self alertElementFromApplication:&snapshot];
53
+ self.hasCachedAlertElement = YES;
54
+ if (nil != snapshot) {
55
+ self.cachedAlertSnapshot = snapshot;
56
+ self.hasCachedAlertSnapshot = YES;
57
+ }
58
+ }
59
+ return self.cachedAlertElement;
60
+ }
61
+
62
+ // The alert element's own subtree snapshot, taken once. All read-only
63
+ // accessors (text, buttonLabels) and all element lookups (buttons, input
64
+ // fields) work off this single snapshot in memory - only tapping/typing into
65
+ // a specific already-located element pays for one more, narrowly targeted
66
+ // accessibility round trip (see XCUIApplication.fb_elementForSnapshot:underElement:).
67
+ // fb_cachedSnapshot is tried before fb_customSnapshot: it can reconstruct
68
+ // the element's snapshot from the detection query's already-fetched
69
+ // rootElementSnapshot without a further round trip (verified empirically -
70
+ // see XCUIApplication+FBAlert.m).
71
+ - (nullable id<FBXCElementSnapshot>)alertSnapshot
72
+ {
73
+ if (!self.hasCachedAlertSnapshot) {
74
+ XCUIElement *alertElement = self.alertElement;
75
+ self.cachedAlertSnapshot = nil == alertElement
76
+ ? nil
77
+ : (alertElement.fb_cachedSnapshot ?: [alertElement fb_customSnapshot]);
78
+ self.hasCachedAlertSnapshot = YES;
79
+ }
80
+ return self.cachedAlertSnapshot;
44
81
  }
45
82
 
46
83
  - (BOOL)isPresent
47
84
  {
48
- @try {
49
- if (nil == self.alertElement) {
50
- return NO;
85
+ return nil != self.alertElement;
86
+ }
87
+
88
+ + (NSArray<id<FBXCElementSnapshot>> *)fb_buttonSnapshotsInSnapshot:(id<FBXCElementSnapshot>)snapshot
89
+ {
90
+ NSMutableArray<id<FBXCElementSnapshot>> *buttons = [NSMutableArray array];
91
+ [snapshot enumerateDescendantsUsingBlock:^(id<FBXCElementSnapshot> descendant) {
92
+ if (descendant.elementType == XCUIElementTypeButton) {
93
+ [buttons addObject:descendant];
51
94
  }
52
- [self.alertElement fb_customSnapshot];
53
- return YES;
54
- } @catch (NSException *) {
55
- return NO;
56
- }
95
+ }];
96
+ return buttons.copy;
97
+ }
98
+
99
+ - (void)fb_raiseNotPresentException __attribute__((noreturn))
100
+ {
101
+ @throw [NSException exceptionWithName:FBAlertNotPresentException
102
+ reason:@"No alert is open"
103
+ userInfo:nil];
57
104
  }
58
105
 
59
- - (BOOL)notPresentWithError:(NSError **)error
106
+ - (void)fb_raiseActionFailedExceptionWithReason:(NSString *)reason __attribute__((noreturn))
60
107
  {
61
- return [[[FBErrorBuilder builder]
62
- withDescriptionFormat:@"No alert is open"]
63
- buildError:error];
108
+ @throw [NSException exceptionWithName:FBAlertActionFailedException
109
+ reason:reason
110
+ userInfo:nil];
111
+ }
112
+
113
+ - (void)fb_raiseSetTextFailedExceptionWithReason:(NSString *)reason __attribute__((noreturn))
114
+ {
115
+ @throw [NSException exceptionWithName:FBAlertSetTextFailedException
116
+ reason:reason
117
+ userInfo:nil];
64
118
  }
65
119
 
66
120
  + (BOOL)isSafariWebAlertWithSnapshot:(id<FBXCElementSnapshot>)snapshot
@@ -76,19 +130,19 @@
76
130
 
77
131
  - (NSString *)text
78
132
  {
79
- if (!self.isPresent) {
133
+ id<FBXCElementSnapshot> snapshot = self.alertSnapshot;
134
+ if (nil == snapshot) {
80
135
  return nil;
81
136
  }
82
137
 
83
138
  NSMutableArray<NSString *> *resultText = [NSMutableArray array];
84
- id<FBXCElementSnapshot> snapshot = self.alertElement.lastSnapshot ?: [self.alertElement fb_customSnapshot];
85
139
  BOOL isSafariAlert = [self.class isSafariWebAlertWithSnapshot:snapshot];
86
140
  [snapshot enumerateDescendantsUsingBlock:^(id<FBXCElementSnapshot> descendant) {
87
141
  XCUIElementType elementType = descendant.elementType;
88
142
  if (!(elementType == XCUIElementTypeTextView || elementType == XCUIElementTypeStaticText)) {
89
143
  return;
90
144
  }
91
-
145
+
92
146
  FBXCElementSnapshotWrapper *descendantWrapper = [FBXCElementSnapshotWrapper ensureWrapped:descendant];
93
147
  if (elementType == XCUIElementTypeStaticText
94
148
  && nil != [descendantWrapper fb_parentMatchingType:XCUIElementTypeButton]) {
@@ -112,39 +166,55 @@
112
166
  return [resultText componentsJoinedByString:@"\n"];
113
167
  }
114
168
 
115
- - (BOOL)typeText:(NSString *)text error:(NSError **)error
169
+ - (void)typeText:(NSString *)text
116
170
  {
117
- if (!self.isPresent) {
118
- return [self notPresentWithError:error];
171
+ XCUIElement *alertElement = self.alertElement;
172
+ id<FBXCElementSnapshot> alertSnapshot = self.alertSnapshot;
173
+ if (nil == alertElement || nil == alertSnapshot) {
174
+ [self fb_raiseNotPresentException];
119
175
  }
120
176
 
121
- NSPredicate *textCollectorPredicate = [NSPredicate predicateWithFormat:@"elementType IN {%lu,%lu}",
122
- XCUIElementTypeTextField, XCUIElementTypeSecureTextField];
123
- NSArray<XCUIElement *> *dstFields = [[self.alertElement descendantsMatchingType:XCUIElementTypeAny]
124
- matchingPredicate:textCollectorPredicate].allElementsBoundByIndex;
125
- if (dstFields.count > 1) {
126
- return [[[FBErrorBuilder builder]
127
- withDescriptionFormat:@"The alert contains more than one input field"]
128
- buildError:error];
177
+ NSMutableArray<id<FBXCElementSnapshot>> *dstFieldSnapshots = [NSMutableArray array];
178
+ [alertSnapshot enumerateDescendantsUsingBlock:^(id<FBXCElementSnapshot> descendant) {
179
+ XCUIElementType elementType = descendant.elementType;
180
+ if (elementType == XCUIElementTypeTextField || elementType == XCUIElementTypeSecureTextField) {
181
+ [dstFieldSnapshots addObject:descendant];
182
+ }
183
+ }];
184
+ if (dstFieldSnapshots.count > 1) {
185
+ [self fb_raiseSetTextFailedExceptionWithReason:@"The alert contains more than one input field"];
129
186
  }
130
- if (0 == dstFields.count) {
131
- return [[[FBErrorBuilder builder]
132
- withDescriptionFormat:@"The alert contains no input fields"]
133
- buildError:error];
187
+ id<FBXCElementSnapshot> dstFieldSnapshot = dstFieldSnapshots.firstObject;
188
+ if (nil == dstFieldSnapshot) {
189
+ [self fb_raiseSetTextFailedExceptionWithReason:@"The alert contains no input fields"];
190
+ }
191
+ XCUIElement *dstField = [XCUIApplication fb_elementForSnapshot:dstFieldSnapshot
192
+ underElement:alertElement];
193
+ if (nil == dstField) {
194
+ [self fb_raiseSetTextFailedExceptionWithReason:@"Failed to resolve the input field element"];
195
+ }
196
+ NSError *error;
197
+ // dstField was just resolved via a live query in fb_elementForSnapshot:underElement:
198
+ // above, so its cached snapshot can be safely reconstructed in memory
199
+ // instead of paying for a fresh round trip.
200
+ id<FBXCElementSnapshot> snapshot = dstField.fb_cachedSnapshot ?: [dstField fb_standardSnapshot];
201
+ if (![dstField fb_typeText:text
202
+ shouldClear:YES
203
+ frequency:FBConfiguration.sharedInstance.maxTypingFrequency
204
+ snapshot:snapshot
205
+ error:&error]) {
206
+ [self fb_raiseSetTextFailedExceptionWithReason:error.description];
134
207
  }
135
- return [dstFields.firstObject fb_typeText:text
136
- shouldClear:YES
137
- error:error];
138
208
  }
139
209
 
140
210
  - (NSArray *)buttonLabels
141
211
  {
142
- if (!self.isPresent) {
212
+ id<FBXCElementSnapshot> alertSnapshot = self.alertSnapshot;
213
+ if (nil == alertSnapshot) {
143
214
  return nil;
144
215
  }
145
216
 
146
217
  NSMutableArray<NSString *> *labels = [NSMutableArray array];
147
- id<FBXCElementSnapshot> alertSnapshot = self.alertElement.lastSnapshot ?: [self.alertElement fb_customSnapshot];
148
218
  [alertSnapshot enumerateDescendantsUsingBlock:^(id<FBXCElementSnapshot> descendant) {
149
219
  if (descendant.elementType != XCUIElementTypeButton) {
150
220
  return;
@@ -157,25 +227,27 @@
157
227
  return labels.copy;
158
228
  }
159
229
 
160
- - (BOOL)acceptWithError:(NSError **)error
230
+ - (void)accept
161
231
  {
162
- if (!self.isPresent) {
163
- return [self notPresentWithError:error];
232
+ XCUIElement *alertElement = self.alertElement;
233
+ id<FBXCElementSnapshot> alertSnapshot = self.alertSnapshot;
234
+ if (nil == alertElement || nil == alertSnapshot) {
235
+ [self fb_raiseNotPresentException];
164
236
  }
165
237
 
166
- id<FBXCElementSnapshot> alertSnapshot = self.alertElement.lastSnapshot ?: [self.alertElement fb_customSnapshot];
167
238
  XCUIElement *acceptButton = nil;
168
- if (FBConfiguration.acceptAlertButtonSelector.length) {
239
+ NSString *acceptAlertButtonSelector = FBConfiguration.sharedInstance.acceptAlertButtonSelector ?: @"";
240
+ if (acceptAlertButtonSelector.length) {
169
241
  NSString *errorReason = nil;
170
242
  @try {
171
- acceptButton = [[self.alertElement fb_descendantsMatchingClassChain:FBConfiguration.acceptAlertButtonSelector
172
- shouldReturnAfterFirstMatch:YES] firstObject];
243
+ acceptButton = [[alertElement fb_descendantsMatchingClassChain:acceptAlertButtonSelector
244
+ shouldReturnAfterFirstMatch:YES] firstObject];
173
245
  } @catch (NSException *ex) {
174
246
  errorReason = ex.reason;
175
247
  }
176
248
  if (nil == acceptButton) {
177
249
  [FBLogger logFmt:@"Cannot find any match for Accept alert button using the class chain selector '%@'",
178
- FBConfiguration.acceptAlertButtonSelector];
250
+ acceptAlertButtonSelector];
179
251
  if (nil != errorReason) {
180
252
  [FBLogger logFmt:@"Original error: %@", errorReason];
181
253
  }
@@ -183,40 +255,57 @@
183
255
  }
184
256
  }
185
257
  if (nil == acceptButton) {
186
- NSArray<XCUIElement *> *buttons = [self.alertElement.fb_query
187
- descendantsMatchingType:XCUIElementTypeButton].allElementsBoundByIndex;
188
- acceptButton = (alertSnapshot.elementType == XCUIElementTypeAlert || [self.class isSafariWebAlertWithSnapshot:alertSnapshot])
189
- ? buttons.lastObject
190
- : buttons.firstObject;
258
+ // buttonSnapshotsInSnapshot's tree-order walk doesn't always match a
259
+ // live query's ordering: on the system location-permission alert (iOS
260
+ // 17.5, confirmed via manual testing), that mismatch put a
261
+ // non-dismissing "Precise: On/Off" toggle first, so accept/dismiss
262
+ // silently tapped the wrong control and left the alert on screen. Not
263
+ // reproduced on iOS 18+, so keep the cheaper snapshot walk there and
264
+ // only pay for a live query below iOS 18.
265
+ if (@available(iOS 18.0, *)) {
266
+ NSArray<id<FBXCElementSnapshot>> *buttonSnapshots = [self.class fb_buttonSnapshotsInSnapshot:alertSnapshot];
267
+ id<FBXCElementSnapshot> chosenSnapshot = (alertSnapshot.elementType == XCUIElementTypeAlert || [self.class isSafariWebAlertWithSnapshot:alertSnapshot])
268
+ ? buttonSnapshots.lastObject
269
+ : buttonSnapshots.firstObject;
270
+ if (nil != chosenSnapshot) {
271
+ acceptButton = [XCUIApplication fb_elementForSnapshot:chosenSnapshot underElement:alertElement];
272
+ }
273
+ } else {
274
+ NSArray<XCUIElement *> *buttons = [alertElement.fb_query
275
+ descendantsMatchingType:XCUIElementTypeButton].allElementsBoundByIndex;
276
+ acceptButton = (alertSnapshot.elementType == XCUIElementTypeAlert || [self.class isSafariWebAlertWithSnapshot:alertSnapshot])
277
+ ? buttons.lastObject
278
+ : buttons.firstObject;
279
+ }
191
280
  }
192
281
  if (nil == acceptButton) {
193
- return [[[FBErrorBuilder builder]
194
- withDescriptionFormat:@"Failed to find accept button for alert: %@", self.alertElement]
195
- buildError:error];
282
+ [self fb_raiseActionFailedExceptionWithReason:
283
+ [NSString stringWithFormat:@"Failed to find accept button for alert: %@", alertElement]];
196
284
  }
197
285
  [acceptButton tap];
198
- return YES;
199
286
  }
200
287
 
201
- - (BOOL)dismissWithError:(NSError **)error
288
+ - (void)dismiss
202
289
  {
203
- if (!self.isPresent) {
204
- return [self notPresentWithError:error];
290
+ XCUIElement *alertElement = self.alertElement;
291
+ id<FBXCElementSnapshot> alertSnapshot = self.alertSnapshot;
292
+ if (nil == alertElement || nil == alertSnapshot) {
293
+ [self fb_raiseNotPresentException];
205
294
  }
206
295
 
207
- id<FBXCElementSnapshot> alertSnapshot = self.alertElement.lastSnapshot ?: [self.alertElement fb_customSnapshot];
208
296
  XCUIElement *dismissButton = nil;
209
- if (FBConfiguration.dismissAlertButtonSelector.length) {
297
+ NSString *dismissAlertButtonSelector = FBConfiguration.sharedInstance.dismissAlertButtonSelector ?: @"";
298
+ if (dismissAlertButtonSelector.length) {
210
299
  NSString *errorReason = nil;
211
300
  @try {
212
- dismissButton = [[self.alertElement fb_descendantsMatchingClassChain:FBConfiguration.dismissAlertButtonSelector
213
- shouldReturnAfterFirstMatch:YES] firstObject];
301
+ dismissButton = [[alertElement fb_descendantsMatchingClassChain:dismissAlertButtonSelector
302
+ shouldReturnAfterFirstMatch:YES] firstObject];
214
303
  } @catch (NSException *ex) {
215
304
  errorReason = ex.reason;
216
305
  }
217
306
  if (nil == dismissButton) {
218
307
  [FBLogger logFmt:@"Cannot find any match for Dismiss alert button using the class chain selector '%@'",
219
- FBConfiguration.dismissAlertButtonSelector];
308
+ dismissAlertButtonSelector];
220
309
  if (nil != errorReason) {
221
310
  [FBLogger logFmt:@"Original error: %@", errorReason];
222
311
  }
@@ -224,51 +313,142 @@
224
313
  }
225
314
  }
226
315
  if (nil == dismissButton) {
227
- NSArray<XCUIElement *> *buttons = [self.alertElement.fb_query
228
- descendantsMatchingType:XCUIElementTypeButton].allElementsBoundByIndex;
229
- dismissButton = (alertSnapshot.elementType == XCUIElementTypeAlert || [self.class isSafariWebAlertWithSnapshot:alertSnapshot])
230
- ? buttons.firstObject
231
- : buttons.lastObject;
316
+ // See the matching comment in accept.
317
+ if (@available(iOS 18.0, *)) {
318
+ NSArray<id<FBXCElementSnapshot>> *buttonSnapshots = [self.class fb_buttonSnapshotsInSnapshot:alertSnapshot];
319
+ id<FBXCElementSnapshot> chosenSnapshot = (alertSnapshot.elementType == XCUIElementTypeAlert || [self.class isSafariWebAlertWithSnapshot:alertSnapshot])
320
+ ? buttonSnapshots.firstObject
321
+ : buttonSnapshots.lastObject;
322
+ if (nil != chosenSnapshot) {
323
+ dismissButton = [XCUIApplication fb_elementForSnapshot:chosenSnapshot underElement:alertElement];
324
+ }
325
+ } else {
326
+ NSArray<XCUIElement *> *buttons = [alertElement.fb_query
327
+ descendantsMatchingType:XCUIElementTypeButton].allElementsBoundByIndex;
328
+ dismissButton = (alertSnapshot.elementType == XCUIElementTypeAlert || [self.class isSafariWebAlertWithSnapshot:alertSnapshot])
329
+ ? buttons.firstObject
330
+ : buttons.lastObject;
331
+ }
232
332
  }
233
333
 
234
334
  if (nil == dismissButton) {
235
- return [[[FBErrorBuilder builder]
236
- withDescriptionFormat:@"Failed to find dismiss button for alert: %@", self.alertElement]
237
- buildError:error];
335
+ [self fb_raiseActionFailedExceptionWithReason:
336
+ [NSString stringWithFormat:@"Failed to find dismiss button for alert: %@", alertElement]];
238
337
  }
239
338
  [dismissButton tap];
240
- return YES;
241
339
  }
242
340
 
243
- - (BOOL)clickAlertButton:(NSString *)label error:(NSError **)error
341
+ - (void)clickAlertButton:(NSString *)label
244
342
  {
245
- if (!self.isPresent) {
246
- return [self notPresentWithError:error];
343
+ XCUIElement *alertElement = self.alertElement;
344
+ id<FBXCElementSnapshot> alertSnapshot = self.alertSnapshot;
345
+ if (nil == alertElement || nil == alertSnapshot) {
346
+ [self fb_raiseNotPresentException];
247
347
  }
248
348
 
249
- NSPredicate *predicate = [NSPredicate predicateWithFormat:@"label == %@", label];
250
- XCUIElement *requestedButton = [[self.alertElement descendantsMatchingType:XCUIElementTypeButton]
251
- matchingPredicate:predicate].allElementsBoundByIndex.firstObject;
349
+ __block id<FBXCElementSnapshot> matchedSnapshot = nil;
350
+ [alertSnapshot enumerateDescendantsUsingBlock:^(id<FBXCElementSnapshot> descendant) {
351
+ if (nil != matchedSnapshot || descendant.elementType != XCUIElementTypeButton) {
352
+ return;
353
+ }
354
+ NSString *btnLabel = [FBXCElementSnapshotWrapper ensureWrapped:descendant].wdLabel;
355
+ if (nil != btnLabel && [btnLabel isEqualToString:label]) {
356
+ matchedSnapshot = descendant;
357
+ }
358
+ }];
359
+ XCUIElement *requestedButton = nil == matchedSnapshot
360
+ ? nil
361
+ : [XCUIApplication fb_elementForSnapshot:matchedSnapshot underElement:alertElement];
252
362
  if (!requestedButton) {
253
- return [[[FBErrorBuilder builder]
254
- withDescriptionFormat:@"Failed to find button with label '%@' for alert: %@", label, self.alertElement]
255
- buildError:error];
363
+ [self fb_raiseActionFailedExceptionWithReason:
364
+ [NSString stringWithFormat:@"Failed to find button with label '%@' for alert: %@", label, alertElement]];
256
365
  }
257
366
  [requestedButton tap];
258
- return YES;
259
367
  }
260
368
 
261
- - (XCUIElement *)alertElement
369
+ - (void)clickElementMatchingClassChain:(NSString *)classChain
262
370
  {
263
- if (nil == self.element) {
371
+ XCUIElement *alertElement = self.alertElement;
372
+ if (nil == alertElement) {
373
+ [self fb_raiseNotPresentException];
374
+ }
375
+
376
+ // For a Safari web alert, alertElement is the containing scrollView, not
377
+ // the alert's own div (see fb_alertElementWithSnapshot:), so a classChain
378
+ // query from it could also match unrelated page content. Constrain
379
+ // matches to descendants of alertSnapshot by uid when available.
380
+ NSSet<NSString *> *alertSnapshotUids = nil;
381
+ id<FBXCElementSnapshot> alertSnapshot = self.alertSnapshot;
382
+ if (nil != alertSnapshot) {
383
+ NSMutableSet<NSString *> *uids = [NSMutableSet set];
384
+ NSString *rootUid = [FBXCElementSnapshotWrapper wdUIDWithSnapshot:alertSnapshot];
385
+ if (nil != rootUid) {
386
+ [uids addObject:rootUid];
387
+ }
388
+ [alertSnapshot enumerateDescendantsUsingBlock:^(id<FBXCElementSnapshot> descendant) {
389
+ NSString *uid = [FBXCElementSnapshotWrapper wdUIDWithSnapshot:descendant];
390
+ if (nil != uid) {
391
+ [uids addObject:uid];
392
+ }
393
+ }];
394
+ alertSnapshotUids = uids;
395
+ }
396
+
397
+ NSArray<XCUIElement *> *matches = nil;
398
+ @try {
399
+ matches = [alertElement fb_descendantsMatchingClassChain:classChain
400
+ shouldReturnAfterFirstMatch:NO];
401
+ } @catch (NSException *ex) {
402
+ [self fb_raiseActionFailedExceptionWithReason:
403
+ [NSString stringWithFormat:@"Failed to match class chain selector '%@' for alert: %@. Original error: %@", classChain, alertElement, ex.reason]];
404
+ }
405
+ XCUIElement *matchedElement = nil;
406
+ for (XCUIElement *match in matches) {
407
+ NSString *matchUid = match.fb_uid;
408
+ if (nil == alertSnapshotUids || (nil != matchUid && [alertSnapshotUids containsObject:matchUid])) {
409
+ matchedElement = match;
410
+ break;
411
+ }
412
+ }
413
+ if (nil == matchedElement) {
414
+ [self fb_raiseActionFailedExceptionWithReason:
415
+ [NSString stringWithFormat:@"Failed to find any element matching class chain selector '%@' for alert: %@", classChain, alertElement]];
416
+ }
417
+ [matchedElement tap];
418
+ }
419
+
420
+ // Single source of truth for alert detection: checks each candidate
421
+ // application (systemApp, then self.application if different, then the iOS
422
+ // 18+ limited access prompt app) via targeted, predicate-filtered live
423
+ // queries (see XCUIApplication.fb_alertElementWithSnapshot:) instead of
424
+ // snapshotting and walking the whole application tree - the cost stays
425
+ // proportional to the number of alert-shaped elements rather than the
426
+ // size/depth of the app, which matters a lot for deeply nested view
427
+ // hierarchies. Only ever invoked once per instance, by the alertElement
428
+ // getter above, which caches both the element and (if one comes back) the
429
+ // snapshot obtained as a side effect of resolving it.
430
+ - (nullable XCUIElement *)alertElementFromApplication:(id<FBXCElementSnapshot> _Nullable *)snapshotOut
431
+ {
432
+ @try {
264
433
  XCUIApplication *systemApp = XCUIApplication.fb_systemApplication;
265
- if ([systemApp fb_isSameAppAs:self.application]) {
266
- self.element = systemApp.fb_alertElement;
267
- } else {
268
- self.element = systemApp.fb_alertElement ?: self.application.fb_alertElement;
434
+ NSMutableArray<XCUIApplication *> *candidates = [NSMutableArray arrayWithObject:systemApp];
435
+ if (![systemApp fb_isSameAppAs:self.application]) {
436
+ [candidates addObject:self.application];
269
437
  }
438
+ XCUIApplication *promptApp = XCUIApplication.fb_limitedAccessPromptApplication;
439
+ if (nil != promptApp) {
440
+ [candidates addObject:promptApp];
441
+ }
442
+ for (XCUIApplication *candidate in candidates) {
443
+ XCUIElement *element = [candidate fb_alertElementWithSnapshot:snapshotOut];
444
+ if (nil != element) {
445
+ return element;
446
+ }
447
+ }
448
+ } @catch (NSException *) {
449
+ return nil;
270
450
  }
271
- return self.element;
451
+ return nil;
272
452
  }
273
453
 
274
454
  @end
@@ -15,11 +15,11 @@
15
15
  <key>CFBundlePackageType</key>
16
16
  <string>FMWK</string>
17
17
  <key>CFBundleShortVersionString</key>
18
- <string>11.1.3</string>
18
+ <string>16.12.8</string>
19
19
  <key>CFBundleSignature</key>
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>11.1.3</string>
22
+ <string>16.12.8</string>
23
23
  <key>NSPrincipalClass</key>
24
24
  <string/>
25
25
  </dict>
@@ -55,6 +55,9 @@ NS_ASSUME_NONNULL_BEGIN
55
55
  /*! Whether element is accessible */
56
56
  @property (nonatomic, readonly, getter = isWDAccessible) BOOL wdAccessible;
57
57
 
58
+ /*! The raw, native `isAccessibilityElement` value reported by the accessibility framework, without WebDriverAgent's custom computation applied by `wdAccessible` */
59
+ @property (nonatomic, readonly, getter = isWDNativeAccessibilityElement) BOOL wdNativeAccessibilityElement;
60
+
58
61
  /*! Whether element is an accessibility container (contains children of any depth that are accessible) */
59
62
  @property (nonatomic, readonly, getter = isWDAccessibilityContainer) BOOL wdAccessibilityContainer;
60
63