maxun-core 0.0.21 → 0.0.22
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/build/interpret.js +34 -30
- package/package.json +1 -1
package/build/interpret.js
CHANGED
|
@@ -1005,30 +1005,33 @@ class Interpreter extends events_1.EventEmitter {
|
|
|
1005
1005
|
yield p.close();
|
|
1006
1006
|
return;
|
|
1007
1007
|
}
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
if (p.isClosed()) {
|
|
1012
|
-
this.log('Page was closed during execution', logger_1.Level.WARN);
|
|
1013
|
-
return;
|
|
1014
|
-
}
|
|
1015
|
-
pageState = yield this.getState(p, workflowCopy, selectors);
|
|
1016
|
-
selectors = [];
|
|
1017
|
-
console.log("Empty selectors:", selectors);
|
|
1018
|
-
}
|
|
1019
|
-
catch (e) {
|
|
1020
|
-
this.log(`Failed to get page state: ${e.message}`, logger_1.Level.ERROR);
|
|
1021
|
-
// If state access fails, attempt graceful recovery
|
|
1022
|
-
if (p.isClosed()) {
|
|
1023
|
-
this.log('Browser has been closed, terminating workflow', logger_1.Level.WARN);
|
|
1024
|
-
return;
|
|
1025
|
-
}
|
|
1026
|
-
// For other errors, continue with empty state to avoid complete failure
|
|
1027
|
-
pageState = { url: p.url(), selectors: [], cookies: {} };
|
|
1028
|
-
}
|
|
1029
|
-
if (this.options.debug) {
|
|
1030
|
-
this.log(`Current state is: \n${JSON.stringify(pageState, null, 2)}`, logger_1.Level.WARN);
|
|
1008
|
+
if (workflowCopy.length === 0) {
|
|
1009
|
+
this.log('All actions completed. Workflow finished.', logger_1.Level.LOG);
|
|
1010
|
+
return;
|
|
1031
1011
|
}
|
|
1012
|
+
// let pageState = {};
|
|
1013
|
+
// try {
|
|
1014
|
+
// // Check if page is still valid before accessing state
|
|
1015
|
+
// if (p.isClosed()) {
|
|
1016
|
+
// this.log('Page was closed during execution', Level.WARN);
|
|
1017
|
+
// return;
|
|
1018
|
+
// }
|
|
1019
|
+
// pageState = await this.getState(p, workflowCopy, selectors);
|
|
1020
|
+
// selectors = [];
|
|
1021
|
+
// console.log("Empty selectors:", selectors)
|
|
1022
|
+
// } catch (e: any) {
|
|
1023
|
+
// this.log(`Failed to get page state: ${e.message}`, Level.ERROR);
|
|
1024
|
+
// // If state access fails, attempt graceful recovery
|
|
1025
|
+
// if (p.isClosed()) {
|
|
1026
|
+
// this.log('Browser has been closed, terminating workflow', Level.WARN);
|
|
1027
|
+
// return;
|
|
1028
|
+
// }
|
|
1029
|
+
// // For other errors, continue with empty state to avoid complete failure
|
|
1030
|
+
// pageState = { url: p.url(), selectors: [], cookies: {} };
|
|
1031
|
+
// }
|
|
1032
|
+
// if (this.options.debug) {
|
|
1033
|
+
// this.log(`Current state is: \n${JSON.stringify(pageState, null, 2)}`, Level.WARN);
|
|
1034
|
+
// }
|
|
1032
1035
|
// const actionId = workflow.findIndex((step) => {
|
|
1033
1036
|
// const isApplicable = this.applicable(step.where, pageState, usedActions);
|
|
1034
1037
|
// console.log("-------------------------------------------------------------");
|
|
@@ -1038,7 +1041,8 @@ class Interpreter extends events_1.EventEmitter {
|
|
|
1038
1041
|
// console.log("-------------------------------------------------------------");
|
|
1039
1042
|
// return isApplicable;
|
|
1040
1043
|
// });
|
|
1041
|
-
actionId = this.getMatchingActionId(workflowCopy, pageState, usedActions);
|
|
1044
|
+
// actionId = this.getMatchingActionId(workflowCopy, pageState, usedActions);
|
|
1045
|
+
const actionId = workflowCopy.length - 1;
|
|
1042
1046
|
const action = workflowCopy[actionId];
|
|
1043
1047
|
console.log("MATCHED ACTION:", action);
|
|
1044
1048
|
console.log("MATCHED ACTION ID:", actionId);
|
|
@@ -1060,12 +1064,12 @@ class Interpreter extends events_1.EventEmitter {
|
|
|
1060
1064
|
workflowCopy.splice(actionId, 1);
|
|
1061
1065
|
console.log(`Action with ID ${action.id} removed from the workflow copy.`);
|
|
1062
1066
|
// const newSelectors = this.getPreviousSelectors(workflow, actionId);
|
|
1063
|
-
const newSelectors = this.getSelectors(workflowCopy);
|
|
1064
|
-
newSelectors.forEach(selector => {
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
});
|
|
1067
|
+
// const newSelectors = this.getSelectors(workflowCopy);
|
|
1068
|
+
// newSelectors.forEach(selector => {
|
|
1069
|
+
// if (!selectors.includes(selector)) {
|
|
1070
|
+
// selectors.push(selector);
|
|
1071
|
+
// }
|
|
1072
|
+
// });
|
|
1069
1073
|
// Reset loop iteration counter on successful action
|
|
1070
1074
|
loopIterations = 0;
|
|
1071
1075
|
}
|