feat: if match !found, validate where conditions
This commit is contained in:
@@ -145,7 +145,36 @@ export class WorkflowGenerator {
|
|||||||
matched = true;
|
matched = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// is the where conditions of the pair are not already in the workflow, we need to validate the where conditions
|
||||||
|
// for possible overshadowing of different rules and handle cases according to the recording logic
|
||||||
|
if (!matched) {
|
||||||
|
const handled = await this.handleOverShadowing(pair, page, this.generatedData.lastIndex || 0);
|
||||||
|
if (!handled) {
|
||||||
|
//adding waitForLoadState with networkidle, for better success rate of automatically recorded workflows
|
||||||
|
if (pair.what[0].action !== 'waitForLoadState' && pair.what[0].action !== 'press') {
|
||||||
|
pair.what.push({
|
||||||
|
action: 'waitForLoadState',
|
||||||
|
args: ['networkidle'],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (this.generatedData.lastIndex === 0) {
|
||||||
|
this.generatedData.lastIndex = null;
|
||||||
|
// we want to have the most specific selectors at the beginning of the workflow
|
||||||
|
this.workflowRecord.workflow.unshift(pair);
|
||||||
|
} else {
|
||||||
|
this.workflowRecord.workflow.splice(this.generatedData.lastIndex || 0, 0, pair);
|
||||||
|
if (this.generatedData.lastIndex) {
|
||||||
|
this.generatedData.lastIndex = this.generatedData.lastIndex - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.log('info',
|
||||||
|
`${JSON.stringify(pair)}: Added to workflow file on index: ${this.generatedData.lastIndex || 0}`);
|
||||||
|
} else {
|
||||||
|
logger.log('debug',
|
||||||
|
` ${JSON.stringify(this.workflowRecord.workflow[this.generatedData.lastIndex || 0])} added action to workflow pair`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user