patchright-core 1.52.1 → 1.52.3
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/lib/server/frameSelectors.js +32 -38
- package/lib/server/frames.js +41 -47
- package/package.json +1 -1
|
@@ -150,12 +150,8 @@ class FrameSelectors {
|
|
|
150
150
|
while (parsed.parts.length > 0) {
|
|
151
151
|
var part = parsed.parts.shift();
|
|
152
152
|
parsedEdits.parts = [part];
|
|
153
|
-
var isUsingXPath = false;
|
|
154
153
|
var elements = [];
|
|
155
154
|
var elementsIndexes = [];
|
|
156
|
-
if (part.name == "xpath") {
|
|
157
|
-
isUsingXPath = true;
|
|
158
|
-
}
|
|
159
155
|
if (part.name == "nth") {
|
|
160
156
|
const partNth = Number(part.body);
|
|
161
157
|
if (partNth > currentScopingElements.length || partNth < -currentScopingElements.length) {
|
|
@@ -179,44 +175,42 @@ class FrameSelectors {
|
|
|
179
175
|
pierce: true
|
|
180
176
|
});
|
|
181
177
|
var queryingElements = [];
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
results.push(shadowRoot2.backendNodeId);
|
|
189
|
-
}
|
|
190
|
-
findClosedShadowRoots2(shadowRoot2, results);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (node.nodeName !== "IFRAME" && node.children && Array.isArray(node.children)) {
|
|
194
|
-
for (const child of node.children) {
|
|
195
|
-
findClosedShadowRoots2(child, results);
|
|
178
|
+
let findClosedShadowRoots2 = function(node, results = []) {
|
|
179
|
+
if (!node || typeof node !== "object") return results;
|
|
180
|
+
if (node.shadowRoots && Array.isArray(node.shadowRoots)) {
|
|
181
|
+
for (const shadowRoot2 of node.shadowRoots) {
|
|
182
|
+
if (shadowRoot2.shadowRootType === "closed" && shadowRoot2.backendNodeId) {
|
|
183
|
+
results.push(shadowRoot2.backendNodeId);
|
|
196
184
|
}
|
|
185
|
+
findClosedShadowRoots2(shadowRoot2, results);
|
|
197
186
|
}
|
|
198
|
-
return results;
|
|
199
|
-
};
|
|
200
|
-
var findClosedShadowRoots = findClosedShadowRoots2;
|
|
201
|
-
var shadowRootBackendIds = findClosedShadowRoots2(describedScope.node);
|
|
202
|
-
var shadowRoots = [];
|
|
203
|
-
for (var shadowRootBackendId of shadowRootBackendIds) {
|
|
204
|
-
var resolvedShadowRoot = await client.send("DOM.resolveNode", {
|
|
205
|
-
backendNodeId: shadowRootBackendId,
|
|
206
|
-
contextId: context.delegate._contextId
|
|
207
|
-
});
|
|
208
|
-
shadowRoots.push(new import_dom.ElementHandle(context, resolvedShadowRoot.object.objectId));
|
|
209
187
|
}
|
|
210
|
-
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}, {
|
|
215
|
-
parsed: parsedEdits
|
|
216
|
-
});
|
|
217
|
-
const shadowElementsAmount = await shadowElements.getProperty("length");
|
|
218
|
-
queryingElements.push([shadowElements, shadowElementsAmount, shadowRoot]);
|
|
188
|
+
if (node.nodeName !== "IFRAME" && node.children && Array.isArray(node.children)) {
|
|
189
|
+
for (const child of node.children) {
|
|
190
|
+
findClosedShadowRoots2(child, results);
|
|
191
|
+
}
|
|
219
192
|
}
|
|
193
|
+
return results;
|
|
194
|
+
};
|
|
195
|
+
var findClosedShadowRoots = findClosedShadowRoots2;
|
|
196
|
+
var shadowRootBackendIds = findClosedShadowRoots2(describedScope.node);
|
|
197
|
+
var shadowRoots = [];
|
|
198
|
+
for (var shadowRootBackendId of shadowRootBackendIds) {
|
|
199
|
+
var resolvedShadowRoot = await client.send("DOM.resolveNode", {
|
|
200
|
+
backendNodeId: shadowRootBackendId,
|
|
201
|
+
contextId: context.delegate._contextId
|
|
202
|
+
});
|
|
203
|
+
shadowRoots.push(new import_dom.ElementHandle(context, resolvedShadowRoot.object.objectId));
|
|
204
|
+
}
|
|
205
|
+
for (var shadowRoot of shadowRoots) {
|
|
206
|
+
const shadowElements = await shadowRoot.evaluateHandleInUtility(([injected2, node, { parsed: parsed2 }]) => {
|
|
207
|
+
const elements2 = injected2.querySelectorAll(parsed2, node);
|
|
208
|
+
return elements2;
|
|
209
|
+
}, {
|
|
210
|
+
parsed: parsedEdits
|
|
211
|
+
});
|
|
212
|
+
const shadowElementsAmount = await shadowElements.getProperty("length");
|
|
213
|
+
queryingElements.push([shadowElements, shadowElementsAmount, shadowRoot]);
|
|
220
214
|
}
|
|
221
215
|
const rootElements = await scope.evaluateHandleInUtility(([injected2, node, { parsed: parsed2 }]) => {
|
|
222
216
|
const elements2 = injected2.querySelectorAll(parsed2, node);
|
package/lib/server/frames.js
CHANGED
|
@@ -802,7 +802,7 @@ class Frame extends import_instrumentation.SdkObject {
|
|
|
802
802
|
return handle ? handles.length : 0;
|
|
803
803
|
}, "returnAll");
|
|
804
804
|
return promise;
|
|
805
|
-
},
|
|
805
|
+
}, 1e4);
|
|
806
806
|
return resultPromise ? resultPromise : 0;
|
|
807
807
|
}
|
|
808
808
|
async content() {
|
|
@@ -1231,9 +1231,9 @@ class Frame extends import_instrumentation.SdkObject {
|
|
|
1231
1231
|
return state.matches;
|
|
1232
1232
|
}, { handle });
|
|
1233
1233
|
}
|
|
1234
|
-
});
|
|
1234
|
+
}, "returnOnNotResolved");
|
|
1235
1235
|
return scope ? scope._context._raceAgainstContextDestroyed(promise) : promise;
|
|
1236
|
-
},
|
|
1236
|
+
}, 1e4) || false;
|
|
1237
1237
|
} catch (e) {
|
|
1238
1238
|
if (js.isJavaScriptErrorInEvaluate(e) || (0, import_selectorParser.isInvalidSelectorError)(e) || (0, import_protocolError.isSessionClosedError)(e)) throw e;
|
|
1239
1239
|
return false;
|
|
@@ -1620,12 +1620,8 @@ class Frame extends import_instrumentation.SdkObject {
|
|
|
1620
1620
|
while (parsed.parts.length > 0) {
|
|
1621
1621
|
var part = parsed.parts.shift();
|
|
1622
1622
|
parsedEdits.parts = [part];
|
|
1623
|
-
var isUsingXPath = false;
|
|
1624
1623
|
var elements = [];
|
|
1625
1624
|
var elementsIndexes = [];
|
|
1626
|
-
if (part.name == "xpath") {
|
|
1627
|
-
isUsingXPath = true;
|
|
1628
|
-
}
|
|
1629
1625
|
if (part.name == "nth") {
|
|
1630
1626
|
const partNth = Number(part.body);
|
|
1631
1627
|
if (partNth > currentScopingElements.length || partNth < -currentScopingElements.length) {
|
|
@@ -1643,52 +1639,50 @@ class Frame extends import_instrumentation.SdkObject {
|
|
|
1643
1639
|
elements = currentScopingElements.filter((item) => backendNodeIds.has(item.backendNodeId));
|
|
1644
1640
|
} else {
|
|
1645
1641
|
for (const scope of currentScopingElements) {
|
|
1642
|
+
let findClosedShadowRoots2 = function(node, results = []) {
|
|
1643
|
+
if (!node || typeof node !== "object") return results;
|
|
1644
|
+
if (node.shadowRoots && Array.isArray(node.shadowRoots)) {
|
|
1645
|
+
for (const shadowRoot2 of node.shadowRoots) {
|
|
1646
|
+
if (shadowRoot2.shadowRootType === "closed" && shadowRoot2.backendNodeId) {
|
|
1647
|
+
results.push(shadowRoot2.backendNodeId);
|
|
1648
|
+
}
|
|
1649
|
+
findClosedShadowRoots2(shadowRoot2, results);
|
|
1650
|
+
}
|
|
1651
|
+
}
|
|
1652
|
+
if (node.nodeName !== "IFRAME" && node.children && Array.isArray(node.children)) {
|
|
1653
|
+
for (const child of node.children) {
|
|
1654
|
+
findClosedShadowRoots2(child, results);
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
return results;
|
|
1658
|
+
};
|
|
1659
|
+
var findClosedShadowRoots = findClosedShadowRoots2;
|
|
1646
1660
|
const describedScope = await client.send("DOM.describeNode", {
|
|
1647
1661
|
objectId: scope._objectId,
|
|
1648
1662
|
depth: -1,
|
|
1649
1663
|
pierce: true
|
|
1650
1664
|
});
|
|
1651
1665
|
var queryingElements = [];
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
};
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
var shadowRoots = [];
|
|
1673
|
-
for (var shadowRootBackendId of shadowRootBackendIds) {
|
|
1674
|
-
var resolvedShadowRoot = await client.send("DOM.resolveNode", {
|
|
1675
|
-
backendNodeId: shadowRootBackendId,
|
|
1676
|
-
contextId: context.delegate._contextId
|
|
1677
|
-
});
|
|
1678
|
-
shadowRoots.push(new dom.ElementHandle(context, resolvedShadowRoot.object.objectId));
|
|
1679
|
-
}
|
|
1680
|
-
for (var shadowRoot of shadowRoots) {
|
|
1681
|
-
const shadowElements = await shadowRoot.evaluateHandleInUtility(([injected, node, { parsed: parsed2, callId }]) => {
|
|
1682
|
-
const elements2 = injected.querySelectorAll(parsed2, node);
|
|
1683
|
-
if (callId) injected.markTargetElements(new Set(elements2), callId);
|
|
1684
|
-
return elements2;
|
|
1685
|
-
}, {
|
|
1686
|
-
parsed: parsedEdits,
|
|
1687
|
-
callId: progress.metadata.id
|
|
1688
|
-
});
|
|
1689
|
-
const shadowElementsAmount = await shadowElements.getProperty("length");
|
|
1690
|
-
queryingElements.push([shadowElements, shadowElementsAmount, shadowRoot]);
|
|
1691
|
-
}
|
|
1666
|
+
var shadowRootBackendIds = findClosedShadowRoots2(describedScope.node);
|
|
1667
|
+
var shadowRoots = [];
|
|
1668
|
+
for (var shadowRootBackendId of shadowRootBackendIds) {
|
|
1669
|
+
var resolvedShadowRoot = await client.send("DOM.resolveNode", {
|
|
1670
|
+
backendNodeId: shadowRootBackendId,
|
|
1671
|
+
contextId: context.delegate._contextId
|
|
1672
|
+
});
|
|
1673
|
+
shadowRoots.push(new dom.ElementHandle(context, resolvedShadowRoot.object.objectId));
|
|
1674
|
+
}
|
|
1675
|
+
for (var shadowRoot of shadowRoots) {
|
|
1676
|
+
const shadowElements = await shadowRoot.evaluateHandleInUtility(([injected, node, { parsed: parsed2, callId }]) => {
|
|
1677
|
+
const elements2 = injected.querySelectorAll(parsed2, node);
|
|
1678
|
+
if (callId) injected.markTargetElements(new Set(elements2), callId);
|
|
1679
|
+
return elements2;
|
|
1680
|
+
}, {
|
|
1681
|
+
parsed: parsedEdits,
|
|
1682
|
+
callId: progress.metadata.id
|
|
1683
|
+
});
|
|
1684
|
+
const shadowElementsAmount = await shadowElements.getProperty("length");
|
|
1685
|
+
queryingElements.push([shadowElements, shadowElementsAmount, shadowRoot]);
|
|
1692
1686
|
}
|
|
1693
1687
|
const rootElements = await scope.evaluateHandleInUtility(([injected, node, { parsed: parsed2, callId }]) => {
|
|
1694
1688
|
const elements2 = injected.querySelectorAll(parsed2, node);
|