appium-webdriveragent 9.6.3 → 9.7.0
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
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [9.7.0](https://github.com/appium/WebDriverAgent/compare/v9.6.3...v9.7.0) (2025-05-20)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* add placeholderValue to page source tree ([#1016](https://github.com/appium/WebDriverAgent/issues/1016)) ([509c207](https://github.com/appium/WebDriverAgent/commit/509c207b1366dd8582ba273edcdf77bfb30f53c9))
|
|
6
|
+
|
|
1
7
|
## [9.6.3](https://github.com/appium/WebDriverAgent/compare/v9.6.2...v9.6.3) (2025-05-18)
|
|
2
8
|
|
|
3
9
|
### Miscellaneous Chores
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
#import "XCUIElement+FBUtilities.h"
|
|
38
38
|
#import "XCUIElement+FBWebDriverAttributes.h"
|
|
39
39
|
#import "XCUIElementQuery.h"
|
|
40
|
+
#import "FBElementHelpers.h"
|
|
40
41
|
|
|
41
42
|
static NSString* const FBUnknownBundleId = @"unknown";
|
|
42
43
|
|
|
@@ -45,6 +46,7 @@ static NSString* const FBExclusionAttributeEnabled = @"enabled";
|
|
|
45
46
|
static NSString* const FBExclusionAttributeVisible = @"visible";
|
|
46
47
|
static NSString* const FBExclusionAttributeAccessible = @"accessible";
|
|
47
48
|
static NSString* const FBExclusionAttributeFocused = @"focused";
|
|
49
|
+
static NSString* const FBExclusionAttributePlaceholderValue = @"placeholderValue";
|
|
48
50
|
|
|
49
51
|
|
|
50
52
|
_Nullable id extractIssueProperty(id issue, NSString *propertyName) {
|
|
@@ -201,28 +203,15 @@ NSDictionary<NSString *, NSString *> *customExclusionAttributesMap(void) {
|
|
|
201
203
|
info[@"label"] = FBValueOrNull(wrappedSnapshot.wdLabel);
|
|
202
204
|
info[@"rect"] = wrappedSnapshot.wdRect;
|
|
203
205
|
|
|
204
|
-
NSDictionary<NSString *, NSString *
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
FBExclusionAttributeEnabled: ^{
|
|
209
|
-
return [@([wrappedSnapshot isWDEnabled]) stringValue];
|
|
210
|
-
},
|
|
211
|
-
FBExclusionAttributeVisible: ^{
|
|
212
|
-
return [@([wrappedSnapshot isWDVisible]) stringValue];
|
|
213
|
-
},
|
|
214
|
-
FBExclusionAttributeAccessible: ^{
|
|
215
|
-
return [@([wrappedSnapshot isWDAccessible]) stringValue];
|
|
216
|
-
},
|
|
217
|
-
FBExclusionAttributeFocused: ^{
|
|
218
|
-
return [@([wrappedSnapshot isWDFocused]) stringValue];
|
|
219
|
-
}
|
|
220
|
-
};
|
|
206
|
+
NSDictionary<NSString *, NSString *(^)(void)> *attributeBlocks = [self fb_attributeBlockMapForWrappedSnapshot:wrappedSnapshot];
|
|
207
|
+
|
|
208
|
+
NSSet *nonPrefixedKeys = [NSSet setWithObjects:FBExclusionAttributeFrame,
|
|
209
|
+
FBExclusionAttributePlaceholderValue, nil];
|
|
221
210
|
|
|
222
211
|
for (NSString *key in attributeBlocks) {
|
|
223
212
|
if (excludedAttributes == nil || ![excludedAttributes containsObject:key]) {
|
|
224
213
|
NSString *value = ((NSString * (^)(void))attributeBlocks[key])();
|
|
225
|
-
if ([
|
|
214
|
+
if ([nonPrefixedKeys containsObject:key]) {
|
|
226
215
|
info[key] = value;
|
|
227
216
|
} else {
|
|
228
217
|
info[[NSString stringWithFormat:@"is%@", [key capitalizedString]]] = value;
|
|
@@ -248,6 +237,43 @@ NSDictionary<NSString *, NSString *> *customExclusionAttributesMap(void) {
|
|
|
248
237
|
return info;
|
|
249
238
|
}
|
|
250
239
|
|
|
240
|
+
// Helper used by `dictionaryForElement:` to assemble attribute value blocks,
|
|
241
|
+
// including both common attributes and conditionally included ones like placeholderValue.
|
|
242
|
+
+ (NSDictionary<NSString *, NSString *(^)(void)> *)fb_attributeBlockMapForWrappedSnapshot:(FBXCElementSnapshotWrapper *)wrappedSnapshot
|
|
243
|
+
|
|
244
|
+
{
|
|
245
|
+
// Base attributes common to every element
|
|
246
|
+
NSMutableDictionary<NSString *, NSString *(^)(void)> *blocks =
|
|
247
|
+
[@{
|
|
248
|
+
FBExclusionAttributeFrame: ^{
|
|
249
|
+
return NSStringFromCGRect(wrappedSnapshot.wdFrame);
|
|
250
|
+
},
|
|
251
|
+
FBExclusionAttributeEnabled: ^{
|
|
252
|
+
return [@([wrappedSnapshot isWDEnabled]) stringValue];
|
|
253
|
+
},
|
|
254
|
+
FBExclusionAttributeVisible: ^{
|
|
255
|
+
return [@([wrappedSnapshot isWDVisible]) stringValue];
|
|
256
|
+
},
|
|
257
|
+
FBExclusionAttributeAccessible: ^{
|
|
258
|
+
return [@([wrappedSnapshot isWDAccessible]) stringValue];
|
|
259
|
+
},
|
|
260
|
+
FBExclusionAttributeFocused: ^{
|
|
261
|
+
return [@([wrappedSnapshot isWDFocused]) stringValue];
|
|
262
|
+
}
|
|
263
|
+
} mutableCopy];
|
|
264
|
+
|
|
265
|
+
XCUIElementType elementType = wrappedSnapshot.elementType;
|
|
266
|
+
|
|
267
|
+
// Text-input placeholder (only for elements that support inner text)
|
|
268
|
+
if (FBDoesElementSupportInnerText(elementType)) {
|
|
269
|
+
blocks[FBExclusionAttributePlaceholderValue] = ^{
|
|
270
|
+
return (NSString *)FBValueOrNull(wrappedSnapshot.wdPlaceholderValue);
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return [blocks copy];
|
|
275
|
+
}
|
|
276
|
+
|
|
251
277
|
+ (NSDictionary *)accessibilityInfoForElement:(id<FBXCElementSnapshot>)snapshot
|
|
252
278
|
{
|
|
253
279
|
FBXCElementSnapshotWrapper *wrappedSnapshot = [FBXCElementSnapshotWrapper ensureWrapped:snapshot];
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>9.
|
|
18
|
+
<string>9.7.0</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>9.
|
|
22
|
+
<string>9.7.0</string>
|
|
23
23
|
<key>NSPrincipalClass</key>
|
|
24
24
|
<string/>
|
|
25
25
|
</dict>
|