ff-automationv2 2.2.24 → 2.2.25

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.
Files changed (98) hide show
  1. package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +2 -2
  2. package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +1 -1
  3. package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +1 -1
  4. package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +1 -1
  5. package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +3 -3
  6. package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +4 -2
  7. package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +1 -0
  8. package/dist/automation/actions/executor.d.ts +1 -1
  9. package/dist/automation/actions/executor.js +2 -1
  10. package/dist/automation/actions/interaction/clear/clear.js +1 -1
  11. package/dist/automation/actions/interaction/clear/clearAndEnter.js +1 -1
  12. package/dist/automation/actions/interaction/click/click.js +1 -1
  13. package/dist/automation/actions/interaction/click/clickNtimes.js +1 -1
  14. package/dist/automation/actions/interaction/click/doubleClick.js +1 -1
  15. package/dist/automation/actions/interaction/click/waitAndClick.js +1 -1
  16. package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +1 -1
  17. package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +1 -1
  18. package/dist/automation/actions/interaction/enterActions/enterInput.js +1 -1
  19. package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +1 -1
  20. package/dist/automation/actions/interaction/find/MOB_FindElement.js +2 -2
  21. package/dist/automation/actions/interaction/find/findElements.js +3 -4
  22. package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +1 -1
  23. package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +1 -1
  24. package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +1 -1
  25. package/dist/automation/actions/interaction/get/getAttribute.js +1 -1
  26. package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +1 -1
  27. package/dist/automation/actions/interaction/get/getLocation.js +1 -1
  28. package/dist/automation/actions/interaction/get/getRect.js +2 -2
  29. package/dist/automation/actions/interaction/get/getSize.js +1 -1
  30. package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +3 -0
  31. package/dist/automation/actions/interaction/get/getTagName.js +1 -1
  32. package/dist/automation/actions/interaction/get/getText.js +1 -1
  33. package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +2 -0
  34. package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +2 -0
  35. package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +1 -1
  36. package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +1 -1
  37. package/dist/automation/actions/interaction/maximize/maximize.js +2 -2
  38. package/dist/automation/actions/interaction/pinch/PinchInByPercentMob.js +3 -3
  39. package/dist/automation/actions/interaction/pinch/PinchOutByPercentMob.js +1 -3
  40. package/dist/automation/actions/interaction/press/longPress.js +1 -1
  41. package/dist/automation/actions/interaction/swipe/swipeDownToElement.js +6 -9
  42. package/dist/automation/actions/interaction/swipe/swipeLeftToElement.js +6 -9
  43. package/dist/automation/actions/interaction/swipe/swipeRightToElement.js +6 -9
  44. package/dist/automation/actions/interaction/swipe/swipeUpToElement.js +6 -9
  45. package/dist/automation/actions/interaction/swipe/swipeUpToElementForMWeb.js +5 -5
  46. package/dist/automation/actions/interaction/swipe/swipeUsingReferenceElement.js +71 -76
  47. package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +1 -1
  48. package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +2 -1
  49. package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +1 -1
  50. package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +1 -1
  51. package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +1 -1
  52. package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +1 -1
  53. package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +1 -1
  54. package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +1 -1
  55. package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +2 -2
  56. package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +5 -5
  57. package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +1 -1
  58. package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +1 -1
  59. package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +3 -3
  60. package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +3 -3
  61. package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +3 -3
  62. package/dist/automation/actions/interaction/verify/verifypartialtext.js +1 -1
  63. package/dist/automation/actions/interaction/verify/verifytext.js +1 -1
  64. package/dist/automation/actions/interaction/wait/MOB_WaitTillAttributeOfElementContainsString.js +1 -1
  65. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsEnabled.js +1 -1
  66. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsInvisible.js +1 -1
  67. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsSelected.js +1 -1
  68. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsVisible.js +1 -1
  69. package/dist/automation/actions/interaction/wait/MOB_WaitTillStalenessOfElement.js +1 -1
  70. package/dist/automation/actions/interface/verifyActionInterface.d.ts +1 -0
  71. package/dist/automation/mobileSession/initiateMobileSession.d.ts +2 -1
  72. package/dist/automation/mobileSession/initiateMobileSession.js +4 -3
  73. package/dist/core/constants/allAction.js +1 -0
  74. package/dist/core/constants/supportedActions.js +29 -2
  75. package/dist/core/interfaces/actionInterface.d.ts +1 -1
  76. package/dist/core/interfaces/executionDetails.d.ts +1 -0
  77. package/dist/core/interfaces/llmConfigurationInterface.d.ts +1 -1
  78. package/dist/core/main/actionHandlerFactory.js +6 -3
  79. package/dist/core/main/executionContext.js +1 -1
  80. package/dist/core/main/runAutomationScript.js +21 -21
  81. package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +1 -1
  82. package/dist/imageAnalysisWeb/annotateScreenshot.js +1 -1
  83. package/dist/llmConfig/llmConfiguration.d.ts +1 -2
  84. package/dist/llmConfig/llmConfiguration.js +15 -13
  85. package/dist/tests/test1.d.ts +1 -7
  86. package/dist/tests/test1.js +29 -11
  87. package/dist/tests/test12.d.ts +0 -1
  88. package/dist/tests/test12.js +73 -72
  89. package/dist/tests/testkaf.d.ts +1 -0
  90. package/dist/tests/testkaf.js +56 -0
  91. package/dist/tests/testwe.d.ts +1 -0
  92. package/dist/tests/testwe.js +24 -0
  93. package/dist/utils/DomExtraction/jsForAttributeInjection.d.ts +1 -1
  94. package/dist/utils/DomExtraction/jsForAttributeInjection.js +11 -7
  95. package/dist/utils/InstancesDetails/getInstancesInfo.js +2 -1
  96. package/dist/utils/swipe/domSearchHelper.d.ts +1 -1
  97. package/dist/utils/swipe/domSearchHelper.js +45 -21
  98. package/package.json +5 -4
@@ -2,29 +2,53 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findElementInDom = findElementInDom;
4
4
  const jsForAttributeInjection_js_1 = require("../DomExtraction/jsForAttributeInjection.js");
5
- const simplifyAndFlatten_js_1 = require("../../domAnalysis/simplifyAndFlatten.js");
6
5
  const xpathcreation_js_1 = require("../helpers/xpathcreation.js");
7
- async function findElementInDom(driver, text) {
8
- const simplifier = new simplifyAndFlatten_js_1.DomSimplifier();
9
- const keywords = text
10
- .toLowerCase()
11
- .split(/\s+/)
12
- .filter(Boolean);
13
- const { dom: annotatedDom } = await (0, jsForAttributeInjection_js_1.getAnnotatedDOMForMobile)(driver);
14
- const { flatNodes } = simplifier.simplifyMobile(annotatedDom);
15
- const sequenceMatch = (value, words) => {
16
- const v = value.toLowerCase();
17
- const pattern = new RegExp("\\b" + words.join("\\s*") + "\\b", "i");
18
- return pattern.test(v);
19
- };
20
- for (const nodeObj of flatNodes) {
21
- const node = nodeObj.node;
6
+ const getRelaventElements_js_1 = require("../../domAnalysis/getRelaventElements.js");
7
+ const logData_js_1 = require("../logger/logData.js");
8
+ async function findElementInDom(driver, text, stepCount, rawdom) {
9
+ const engine = new getRelaventElements_js_1.DomProcessingEngine();
10
+ const { dom: annotatedDom } = await (0, jsForAttributeInjection_js_1.getAnnotatedDOMForMobile)(driver, rawdom);
11
+ logData_js_1.logger.saveDOM(annotatedDom, `annotated-dom-${100 + stepCount}`);
12
+ const results = engine.mobileProcess({
13
+ keywords: text,
14
+ rawDom: annotatedDom,
15
+ stepCount: 100 + stepCount
16
+ });
17
+ logData_js_1.logger.saveJSON(results, `relevant-dom-Mob-${100 + stepCount}`);
18
+ const keywords = text.toLowerCase().split(/\s+/);
19
+ function exactSequenceMatch(value, words) {
20
+ const v = (value || "").toLowerCase();
21
+ const escaped = words.map(w => w.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
22
+ const pattern = escaped.join("\\s*");
23
+ return new RegExp(pattern).test(v);
24
+ }
25
+ function matchNode(node, words) {
22
26
  const textVal = (node["text"] || "").toLowerCase();
23
- const descVal = (node["content-desc"] || "").toLowerCase();
24
- const ridVal = (node["resource-id"] || "").toLowerCase();
25
- if (sequenceMatch(textVal, keywords) ||
26
- sequenceMatch(descVal, keywords) ||
27
- sequenceMatch(ridVal, keywords)) {
27
+ // const desc = (node.name || "").toLowerCase();
28
+ // const value = (node.value || "").toLowerCase();
29
+ const contentDesc = (node["content-desc"] ||
30
+ node.contentDesc ||
31
+ node.contentDescription ||
32
+ "").toLowerCase();
33
+ const resourceId = (node["resource-id"] ||
34
+ node.resourceId ||
35
+ node.id ||
36
+ "").toLowerCase();
37
+ logData_js_1.logger.info(`contentdesc is ${contentDesc}, Resource id is ${resourceId} the text is ${words}`);
38
+ if (exactSequenceMatch(textVal, words))
39
+ return true;
40
+ // if (exactSequenceMatch(desc, words)) return true;
41
+ // if (exactSequenceMatch(value, words)) return true;
42
+ if (exactSequenceMatch(contentDesc, words))
43
+ return true;
44
+ if (exactSequenceMatch(resourceId, words))
45
+ return true;
46
+ return false;
47
+ }
48
+ for (const group of results) {
49
+ for (const node of group) {
50
+ if (!matchNode(node, keywords))
51
+ continue;
28
52
  const ffIndex = node["FF-inspecter"];
29
53
  if (!ffIndex)
30
54
  continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ff-automationv2",
3
- "version": "2.2.24",
3
+ "version": "2.2.25",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "description": "This lib is used to automate the manual testcase",
@@ -16,6 +16,9 @@
16
16
  "files": [
17
17
  "dist"
18
18
  ],
19
+ "overrides": {
20
+ "canvas": "@napi-rs/canvas"
21
+ },
19
22
  "scripts": {
20
23
  "type-check": "tsc --noEmit",
21
24
  "builds": "npm run lint && tsc",
@@ -53,10 +56,8 @@
53
56
  "typescript-eslint": "8.56.0",
54
57
  "webdriverio": "9.26.1"
55
58
  },
56
- "peerDependencies": {
57
- "canvas": "^3.2.3"
58
- },
59
59
  "dependencies": {
60
+ "@napi-rs/canvas": "^0.1.100",
60
61
  "@xmldom/xmldom": "^0.8.11",
61
62
  "axios": "^1.13.5",
62
63
  "cheerio": "1.2.0",