appium-mac2-driver 3.1.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +1 -0
- package/WebDriverAgentMac/IntegrationTests/AMEditElementTests.m +2 -4
- package/WebDriverAgentMac/WebDriverAgentLib/Categories/XCUIElement+AMAttributes.h +4 -2
- package/WebDriverAgentMac/WebDriverAgentLib/Categories/XCUIElement+AMAttributes.m +30 -15
- package/WebDriverAgentMac/WebDriverAgentLib/Categories/XCUIElementQuery+AMHelpers.h +8 -0
- package/WebDriverAgentMac/WebDriverAgentLib/Categories/XCUIElementQuery+AMHelpers.m +17 -0
- package/WebDriverAgentMac/WebDriverAgentLib/Commands/FBSessionCommands.m +4 -0
- package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMSettings.h +3 -0
- package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMSettings.m +1 -1
- package/WebDriverAgentMac/WebDriverAgentLib/Utilities/FBConfiguration.h +3 -0
- package/WebDriverAgentMac/WebDriverAgentLib/Utilities/FBConfiguration.m +11 -0
- package/build/lib/driver.js +2 -2
- package/build/lib/driver.js.map +1 -1
- package/build/lib/wda-mac.d.ts +29 -71
- package/build/lib/wda-mac.d.ts.map +1 -1
- package/build/lib/wda-mac.js +141 -159
- package/build/lib/wda-mac.js.map +1 -1
- package/lib/driver.js +1 -1
- package/lib/{wda-mac.js → wda-mac.ts} +205 -190
- package/npm-shrinkwrap.json +2236 -181
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [3.2.1](https://github.com/appium/appium-mac2-driver/compare/v3.2.0...v3.2.1) (2025-11-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Miscellaneous Chores
|
|
5
|
+
|
|
6
|
+
* Port lib/wda-mac.js to Typescript ([#348](https://github.com/appium/appium-mac2-driver/issues/348)) ([0a5a78a](https://github.com/appium/appium-mac2-driver/commit/0a5a78ac0e615b5af30da1128a9ac83b007d324d))
|
|
7
|
+
|
|
8
|
+
## [3.2.0](https://github.com/appium/appium-mac2-driver/compare/v3.1.0...v3.2.0) (2025-11-11)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* Add a setting that allows to fetch full element text ([#347](https://github.com/appium/appium-mac2-driver/issues/347)) ([a8b9e7e](https://github.com/appium/appium-mac2-driver/commit/a8b9e7ee1c0b576c04eaafb8af0d8649330ffc3b))
|
|
14
|
+
|
|
1
15
|
## [3.1.0](https://github.com/appium/appium-mac2-driver/compare/v3.0.1...v3.1.0) (2025-10-01)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -849,6 +849,7 @@ Name | Type | Description
|
|
|
849
849
|
--- | --- | ---
|
|
850
850
|
boundElementsByIndex | boolean | Whether to use elements binding by index (`true`) or by accessibility identifier (the default setting, `false`). It makes sense to switch the binding strategy to workaround stale element reference errors containing `Identity Binding` text in their descriptions. See the corresponding [Stack Overflow discussion](https://stackoverflow.com/questions/49307513/meaning-of-allelementsboundbyaccessibilityelement) to know more details on the difference between these two binding strategies.
|
|
851
851
|
useDefaultUiInterruptionsHandling | boolean | Whether to use the default XCTest UI interruptions handling (`true`, the default setting) or to disable it for the [Application Under Test](#application-under-test-concept) (`false`). It makes sense to disable the default handler if it is necessary to validate the interrupting element's presence in your test or do some other actions on it rather than just closing the view implicitly. Check [this WWDC presentation](https://developer.apple.com/videos/play/wwdc2020/10220/) from Apple to get more details on the UI interruptions handling.
|
|
852
|
+
fetchFullText | boolean | Whether to use custom snapshotting mechanism to fetch full element's text payload instead of the first 512 chars. By default, this setting is set to false, which makes the driver to use the standard XCTest's snapshotting mechanism. It's fast, but may also cut long textual payloads of various UI element's in order to optimize internal UI hierarchy snapshotting performance. If the performance is less important for you that the ability to validate full element's text then consider enabling this setting while calling [Get Element Text](https://www.w3.org/TR/webdriver1/#dfn-get-element-text) API.
|
|
852
853
|
|
|
853
854
|
|
|
854
855
|
## Scripts
|
|
@@ -38,8 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
- (void)testSendingTextIntoNonFocusedEdit
|
|
40
40
|
{
|
|
41
|
-
|
|
42
|
-
XCUIElement *edit = [self.testedApplication.textFields matchingPredicate:predicate].firstMatch;
|
|
41
|
+
XCUIElement *edit = self.testedApplication.textFields.firstMatch;
|
|
43
42
|
NSString *text = @"yolo😎";
|
|
44
43
|
[edit am_setValue:text];
|
|
45
44
|
XCTAssertTrue(edit.am_hasKeyboardInputFocus);
|
|
@@ -50,8 +49,7 @@
|
|
|
50
49
|
|
|
51
50
|
- (void)testSendingTextIntoNonFocusedEditWithPlaceholderText
|
|
52
51
|
{
|
|
53
|
-
|
|
54
|
-
XCUIElement *edit = [self.testedApplication.textFields matchingPredicate:predicate].firstMatch;
|
|
52
|
+
XCUIElement *edit = self.testedApplication.textFields.firstMatch;
|
|
55
53
|
NSString *text = @"yolo😎";
|
|
56
54
|
[edit am_setValue:text];
|
|
57
55
|
XCTAssertTrue(edit.am_hasKeyboardInputFocus);
|
|
@@ -34,9 +34,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
34
34
|
- (NSDictionary<NSString *, NSNumber *> *)am_rect;
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
-
Element text
|
|
37
|
+
Element text. If no text is found then an empty string is returned.
|
|
38
|
+
|
|
39
|
+
@throws Error if `fetchFullText` setting is enabled and there was an error while fetching the snapshot
|
|
38
40
|
*/
|
|
39
|
-
- (
|
|
41
|
+
- (NSString *)am_text;
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
Element type represented as string
|
|
@@ -17,10 +17,12 @@
|
|
|
17
17
|
#import "XCUIElement+AMAttributes.h"
|
|
18
18
|
|
|
19
19
|
#import "AMGeometryUtils.h"
|
|
20
|
+
#import "FBConfiguration.h"
|
|
20
21
|
#import "FBElementTypeTransformer.h"
|
|
21
22
|
#import "FBElementUtils.h"
|
|
22
23
|
#import "FBExceptions.h"
|
|
23
24
|
#import "FBMacros.h"
|
|
25
|
+
#import "XCUIElementQuery+AMHelpers.h"
|
|
24
26
|
|
|
25
27
|
@implementation XCUIElement (AMAttributes)
|
|
26
28
|
|
|
@@ -64,23 +66,20 @@
|
|
|
64
66
|
|
|
65
67
|
- (NSString *)am_text
|
|
66
68
|
{
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return value;
|
|
69
|
+
if (!FBConfiguration.sharedConfiguration.fetchFullText) {
|
|
70
|
+
return [self am_textWithSource:self];
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return placeholderValue;
|
|
78
|
-
}
|
|
79
|
-
NSString *title = self.title;
|
|
80
|
-
if (nil != title && title.length > 0) {
|
|
81
|
-
return title;
|
|
72
|
+
|
|
73
|
+
NSError *error;
|
|
74
|
+
XCUIElementQuery *query = [self valueForKey:@"query"];
|
|
75
|
+
id<XCUIElementAttributes> snapshot = [query am_uniqueSnapshotWithError:&error];
|
|
76
|
+
if (nil != snapshot) {
|
|
77
|
+
return [self am_textWithSource:snapshot];
|
|
82
78
|
}
|
|
83
|
-
|
|
79
|
+
|
|
80
|
+
NSString *reason = [NSString stringWithFormat:@"Cannot extract the full text of '%@' element. Original error: %@",
|
|
81
|
+
self.description, error.description];
|
|
82
|
+
@throw [NSException exceptionWithName:FBInvalidElementStateException reason:reason userInfo:@{}];
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
- (NSString *)am_type
|
|
@@ -94,4 +93,20 @@
|
|
|
94
93
|
return [predicate evaluateWithObject:self];
|
|
95
94
|
}
|
|
96
95
|
|
|
96
|
+
- (NSString *)am_textWithSource:(id<XCUIElementAttributes>)source
|
|
97
|
+
{
|
|
98
|
+
NSArray<NSString *> *candidates = @[
|
|
99
|
+
[FBElementUtils stringValueWithValue:source.value],
|
|
100
|
+
source.label,
|
|
101
|
+
source.placeholderValue,
|
|
102
|
+
source.title
|
|
103
|
+
];
|
|
104
|
+
for (NSString *text in candidates) {
|
|
105
|
+
if (nil != text && text.length > 0) {
|
|
106
|
+
return text;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return @"";
|
|
110
|
+
}
|
|
111
|
+
|
|
97
112
|
@end
|
|
@@ -34,6 +34,14 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
34
34
|
*/
|
|
35
35
|
- (NSArray<XCUIElement *> *)am_allMatches;
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
Returns single unique matching snapshot for the given query
|
|
39
|
+
|
|
40
|
+
@param error The error instance if there was a failure while retrieveing the snapshot
|
|
41
|
+
@returns The unqiue snapshot or nil if the element is stale
|
|
42
|
+
*/
|
|
43
|
+
- (nullable id<XCUIElementSnapshot>)am_uniqueSnapshotWithError:(NSError **)error;
|
|
44
|
+
|
|
37
45
|
@end
|
|
38
46
|
|
|
39
47
|
NS_ASSUME_NONNULL_END
|
|
@@ -32,4 +32,21 @@
|
|
|
32
32
|
: self.allElementsBoundByAccessibilityElement;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
- (id<XCUIElementSnapshot>)am_uniqueSnapshotWithError:(NSError **)error
|
|
36
|
+
{
|
|
37
|
+
SEL selector = NSSelectorFromString(@"uniqueMatchingSnapshotWithError:");
|
|
38
|
+
NSMethodSignature *signature = [self methodSignatureForSelector:selector];
|
|
39
|
+
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
|
|
40
|
+
invocation.target = self;
|
|
41
|
+
invocation.selector = selector;
|
|
42
|
+
|
|
43
|
+
[invocation setArgument:&error atIndex:2]; // index 0 = self, 1 = _cmd, 2 = first real argument
|
|
44
|
+
|
|
45
|
+
[invocation invoke];
|
|
46
|
+
|
|
47
|
+
__unsafe_unretained id returnValue = nil;
|
|
48
|
+
[invocation getReturnValue:&returnValue];
|
|
49
|
+
return returnValue;
|
|
50
|
+
}
|
|
51
|
+
|
|
35
52
|
@end
|
|
@@ -237,6 +237,7 @@ const static NSString *CAPABILITIES_KEY = @"capabilities";
|
|
|
237
237
|
@{
|
|
238
238
|
AM_BOUND_ELEMENTS_BY_INDEX_SETTING: @(FBSession.activeSession.boundElementsByIndex),
|
|
239
239
|
AM_USE_DEFAULT_UI_INTERRUPTIONS_HANDLING_SETTING: @(!application.am_doesNotHandleUIInterruptions),
|
|
240
|
+
AM_FETCH_FULL_TEXT: @(FBConfiguration.sharedConfiguration.fetchFullText),
|
|
240
241
|
}
|
|
241
242
|
);
|
|
242
243
|
}
|
|
@@ -252,6 +253,9 @@ const static NSString *CAPABILITIES_KEY = @"capabilities";
|
|
|
252
253
|
XCUIApplication *application = FBSession.activeSession.currentApplication;
|
|
253
254
|
application.am_doesNotHandleUIInterruptions = ![[settings objectForKey:AM_USE_DEFAULT_UI_INTERRUPTIONS_HANDLING_SETTING] boolValue];
|
|
254
255
|
}
|
|
256
|
+
if (nil != [settings objectForKey:AM_FETCH_FULL_TEXT]) {
|
|
257
|
+
FBConfiguration.sharedConfiguration.fetchFullText = [settings objectForKey:AM_FETCH_FULL_TEXT];
|
|
258
|
+
}
|
|
255
259
|
|
|
256
260
|
return [self handleGetSettings:request];
|
|
257
261
|
}
|
|
@@ -25,4 +25,7 @@ extern NSString* const AM_BOUND_ELEMENTS_BY_INDEX_SETTING;
|
|
|
25
25
|
See https://developer.apple.com/videos/play/wwdc2020/10220/ for more details */
|
|
26
26
|
extern NSString* const AM_USE_DEFAULT_UI_INTERRUPTIONS_HANDLING_SETTING;
|
|
27
27
|
|
|
28
|
+
/*! Whether to use custom snapshotting mechanism to fetch full element's text payload instead of the first 512 chars */
|
|
29
|
+
extern NSString* const AM_FETCH_FULL_TEXT;
|
|
30
|
+
|
|
28
31
|
NS_ASSUME_NONNULL_END
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
#import "AMSettings.h"
|
|
18
18
|
|
|
19
19
|
NSString* const AM_BOUND_ELEMENTS_BY_INDEX_SETTING = @"boundElementsByIndex";
|
|
20
|
-
|
|
21
20
|
NSString* const AM_USE_DEFAULT_UI_INTERRUPTIONS_HANDLING_SETTING = @"useDefaultUiInterruptionsHandling";
|
|
21
|
+
NSString* const AM_FETCH_FULL_TEXT = @"fetchFullText";
|
|
@@ -30,6 +30,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
30
30
|
/*! Enables XCTest automated screen recordings taking in Xcode 15+ */
|
|
31
31
|
@property BOOL automaticScreenRecordings;
|
|
32
32
|
|
|
33
|
+
/*! Whether to use custom snapshotting mechanism to fetch full element's text payload instead of the first 512 chars */
|
|
34
|
+
@property BOOL fetchFullText;
|
|
35
|
+
|
|
33
36
|
/**
|
|
34
37
|
The range of ports that the HTTP Server should attempt to bind on launch
|
|
35
38
|
*/
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
static NSUInteger const DefaultStartingPort = 10100;
|
|
13
13
|
static NSUInteger const DefaultPortRange = 100;
|
|
14
|
+
static BOOL FBFetchFullText = NO;
|
|
14
15
|
|
|
15
16
|
@implementation FBConfiguration
|
|
16
17
|
|
|
@@ -75,6 +76,16 @@ static FBConfiguration *instance;
|
|
|
75
76
|
forKey:@"DisableDiagnosticScreenRecordings"];
|
|
76
77
|
}
|
|
77
78
|
|
|
79
|
+
- (BOOL)fetchFullText
|
|
80
|
+
{
|
|
81
|
+
return FBFetchFullText;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
- (void)setFetchFullText:(BOOL)fetchFullText
|
|
85
|
+
{
|
|
86
|
+
FBFetchFullText = fetchFullText;
|
|
87
|
+
}
|
|
88
|
+
|
|
78
89
|
- (NSRange)bindingPortRange
|
|
79
90
|
{
|
|
80
91
|
// 'WebDriverAgent --port 8080' can be passed via the arguments to the process
|
package/build/lib/driver.js
CHANGED
|
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.Mac2Driver = void 0;
|
|
40
40
|
const lodash_1 = __importDefault(require("lodash"));
|
|
41
41
|
const driver_1 = require("appium/driver");
|
|
42
|
-
const wda_mac_1 =
|
|
42
|
+
const wda_mac_1 = require("./wda-mac");
|
|
43
43
|
const desired_caps_1 = require("./desired-caps");
|
|
44
44
|
const appManagemenetCommands = __importStar(require("./commands/app-management"));
|
|
45
45
|
const appleScriptCommands = __importStar(require("./commands/applescript"));
|
|
@@ -139,7 +139,7 @@ class Mac2Driver extends driver_1.BaseDriver {
|
|
|
139
139
|
async createSession(...args) {
|
|
140
140
|
// @ts-ignore TODO: make args typed
|
|
141
141
|
const [sessionId, caps] = await super.createSession(...args);
|
|
142
|
-
this.wda = wda_mac_1.
|
|
142
|
+
this.wda = wda_mac_1.WDA_MAC_SERVER;
|
|
143
143
|
try {
|
|
144
144
|
if (caps.prerun) {
|
|
145
145
|
if (!lodash_1.default.isString(caps.prerun.command) && !lodash_1.default.isString(caps.prerun.script)) {
|
package/build/lib/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,0CAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,0CAA2D;AAC3D,uCAA2C;AAC3C,iDAAuD;AACvD,kFAAoE;AACpE,4EAA8D;AAC9D,oEAAsD;AACtD,8DAAgD;AAChD,sEAAwD;AACxD,0EAA4D;AAC5D,+EAAiE;AACjE,2EAA6D;AAC7D,kEAAoD;AACpD,wEAA0D;AAC1D,sDAA2B;AAC3B,6CAA4C;AAC5C,6DAAwD;AACxD,+FAAiF;AAEjF,qDAAqD;AACrD,MAAM,QAAQ,GAAG;IACf,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC7C,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACpD,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAChD,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAC;CAClD,CAAC;AAEF,MAAa,UAAW,SAAQ,mBAAU;IACxC,sBAAsB;IACtB,aAAa,CAAC;IAEd,+CAA+C;IAC/C,GAAG,CAAC;IAEJ,yEAAyE;IACzE,uBAAuB,CAAC;IAExB,MAAM,CAAC,YAAY,GAAG,yBAAY,CAAC;IACnC,MAAM,CAAC,gBAAgB,GAAG,qCAAgB,CAAC;IAE3C,YAAa,IAAI,GAAG,EAAE;QACpB,mCAAmC;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,qBAAqB,GAAG,oCAAqB,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG;YACvB,IAAI;YACJ,MAAM;YACN,kBAAkB;YAElB,OAAO;YAEP,YAAY;YAEZ,uBAAuB;YACvB,kBAAkB;YAElB,kBAAkB;YAClB,aAAa;SACd,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAE,GAAG,EAAE,KAAK;QAChC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,EAAE;YAC9D,QAAQ,EAAE,EAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,6BAA6B,CAAC,4BAA4B,CAC3F,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAC5B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,6DAA6D;IAC7D,WAAW,CAAE,SAAS;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,6DAA6D;IAC7D,iBAAiB,CAAE,SAAS;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI;QAC1C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,aAAa,CAAE,GAAG,IAAI;QAC1B,mCAAmC;QACnC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,GAAG,wBAAc,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxE,MAAM,IAAI,KAAK,CAAC,gDAAgD;wBAC9D,4CAA4C,CAAC,CAAC;gBAClD,CAAC;gBACD,gBAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5D,IAAI,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,gBAAG,CAAC,IAAI,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;gBAChC,WAAW,EAAE,IAAI,CAAC,QAAQ;aAC3B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpF,gBAAG,CAAC,KAAK,CAAC,iDAAiD;oBACzD,4CAA4C,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,gBAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClE,IAAI,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnB,gBAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,gBAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,cAAc,GAAG,sBAAsB,CAAC,cAAc,CAAC;IACvD,gBAAgB,GAAG,sBAAsB,CAAC,gBAAgB,CAAC;IAC3D,iBAAiB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC;IAC7D,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;IAE/D,oBAAoB,GAAG,mBAAmB,CAAC,oBAAoB,CAAC;IAEhE,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;IAElC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;IAEvC,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;IAC/C,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;IACzC,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC;IAC3C,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;IACzC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;IACnD,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;IACzC,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;IACrD,iBAAiB,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;IACvD,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;IACrE,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;IACvC,iBAAiB,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;IACvD,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IACrC,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC;IACjD,iBAAiB,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;IACvD,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;IAErE,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;IACxD,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;IAExD,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;IAEjD,oBAAoB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC;IACjE,mBAAmB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;IAE/D,+BAA+B,GAAG,6BAA6B,CAAC,+BAA+B,CAAC;IAChG,iCAAiC,GAAG,6BAA6B,CAAC,iCAAiC,CAAC;IACpG,8BAA8B,GAAG,6BAA6B,CAAC,8BAA8B,CAAC;IAC9F,iBAAiB,GAAG,6BAA6B,CAAC,iBAAiB,CAAC;IAEpE,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;IAEvD,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;;AA/L3C,gCAgMC;AAED,kBAAe,UAAU,CAAC"}
|
package/build/lib/wda-mac.d.ts
CHANGED
|
@@ -1,80 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { JWProxy } from 'appium/driver';
|
|
2
|
+
import type { HTTPMethod, HTTPBody, ProxyResponse } from '@appium/types';
|
|
3
|
+
export interface SessionOptions {
|
|
4
|
+
reqBasePath?: string;
|
|
5
5
|
}
|
|
6
|
-
export class
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* @property {string} path - The path proxy to.
|
|
20
|
-
*/
|
|
6
|
+
export declare class WDAMacProxy extends JWProxy {
|
|
7
|
+
didProcessExit: boolean;
|
|
8
|
+
proxyCommand(url: string, method: HTTPMethod, body?: HTTPBody): Promise<[ProxyResponse, HTTPBody]>;
|
|
9
|
+
}
|
|
10
|
+
export declare class WDAMacServer {
|
|
11
|
+
private _proxy;
|
|
12
|
+
private _process;
|
|
13
|
+
private _serverStartupTimeoutMs;
|
|
14
|
+
private _isProxyingToRemoteServer;
|
|
15
|
+
get proxy(): WDAMacProxy;
|
|
16
|
+
startSession(caps: StartSessionCapabilities, opts?: SessionOptions): Promise<void>;
|
|
17
|
+
stopSession(): Promise<void>;
|
|
18
|
+
private isProxyReady;
|
|
21
19
|
/**
|
|
22
20
|
* Returns proxy information where WDAMacServer proxy to.
|
|
23
21
|
*
|
|
24
|
-
* @param
|
|
25
|
-
* @return
|
|
22
|
+
* @param caps - The capabilities in the session.
|
|
23
|
+
* @return ProxyProperties
|
|
26
24
|
* @throws Error if 'webDriverAgentMacUrl' had invalid URL
|
|
27
25
|
*/
|
|
28
|
-
parseProxyProperties
|
|
29
|
-
/**
|
|
30
|
-
* - The scheme proxy to.
|
|
31
|
-
*/
|
|
32
|
-
scheme: string;
|
|
33
|
-
/**
|
|
34
|
-
* - The host name proxy to.
|
|
35
|
-
*/
|
|
36
|
-
host: string;
|
|
37
|
-
/**
|
|
38
|
-
* - The port number proxy to.
|
|
39
|
-
*/
|
|
40
|
-
port: number;
|
|
41
|
-
/**
|
|
42
|
-
* - The path proxy to.
|
|
43
|
-
*/
|
|
44
|
-
path: string;
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
* @param {import('@appium/types').StringRecord} caps
|
|
49
|
-
* @param {SessionOptions} [opts={}]
|
|
50
|
-
*/
|
|
51
|
-
startSession(caps: import("@appium/types").StringRecord, opts?: SessionOptions): Promise<void>;
|
|
52
|
-
stopSession(): Promise<void>;
|
|
26
|
+
private parseProxyProperties;
|
|
53
27
|
}
|
|
54
|
-
export
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
host: string;
|
|
63
|
-
bootstrapRoot: string;
|
|
64
|
-
proc: any;
|
|
65
|
-
get isRunning(): boolean;
|
|
66
|
-
get pid(): any;
|
|
67
|
-
listChildrenPids(): Promise<string[]>;
|
|
68
|
-
cleanupProjectIfFresh(): Promise<void>;
|
|
69
|
-
hasSameOpts({ showServerLogs, systemPort, systemHost, bootstrapRoot }: {
|
|
70
|
-
showServerLogs: any;
|
|
71
|
-
systemPort: any;
|
|
72
|
-
systemHost: any;
|
|
73
|
-
bootstrapRoot: any;
|
|
74
|
-
}): boolean;
|
|
75
|
-
init(opts?: {}): Promise<boolean>;
|
|
76
|
-
stop(): Promise<void>;
|
|
77
|
-
kill(): Promise<void>;
|
|
28
|
+
export declare const WDA_MAC_SERVER: WDAMacServer;
|
|
29
|
+
interface StartSessionCapabilities {
|
|
30
|
+
webDriverAgentMacUrl?: string;
|
|
31
|
+
systemHost?: string;
|
|
32
|
+
systemPort?: number;
|
|
33
|
+
serverStartupTimeout?: number;
|
|
34
|
+
reqBasePath?: string;
|
|
35
|
+
[key: string]: unknown;
|
|
78
36
|
}
|
|
79
|
-
|
|
37
|
+
export {};
|
|
80
38
|
//# sourceMappingURL=wda-mac.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wda-mac.d.ts","sourceRoot":"","sources":["../../lib/wda-mac.
|
|
1
|
+
{"version":3,"file":"wda-mac.d.ts","sourceRoot":"","sources":["../../lib/wda-mac.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAU,MAAM,eAAe,CAAC;AAOhD,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EAEd,MAAM,eAAe,CAAC;AAmBvB,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,WAAY,SAAQ,OAAO;IAC/B,cAAc,EAAE,OAAO,CAAS;IAExB,YAAY,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,QAAe,GACpB,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;CAStC;AAuOD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,uBAAuB,CAA8B;IAC7D,OAAO,CAAC,yBAAyB,CAAkB;IAEnD,IAAI,KAAK,IAAK,WAAW,CAKxB;IAEK,YAAY,CAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuFvF,WAAW,IAAK,OAAO,CAAC,IAAI,CAAC;YAerB,YAAY;IAgB1B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;CA8B7B;AAED,eAAO,MAAM,cAAc,cAAqB,CAAC;AAsCjD,UAAU,wBAAwB;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|