ff-automationv2 2.1.3 → 2.2.2
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/README.md +28 -28
- package/dist/ai/llmcalls/decodeApiKey.d.ts +1 -0
- package/dist/ai/llmcalls/decodeApiKey.js +11 -0
- package/dist/ai/llmcalls/llmAction.d.ts +16 -0
- package/dist/ai/llmcalls/llmAction.js +145 -0
- package/dist/ai/llmcalls/parseLlmOputput.d.ts +15 -0
- package/{src/ai/llmcalls/parseLlmOputput.ts → dist/ai/llmcalls/parseLlmOputput.js} +17 -35
- package/dist/ai/llmprompts/llmPromptTypes/systemPromptTypes.d.ts +37 -0
- package/dist/ai/llmprompts/llmPromptTypes/systemPromptTypes.js +1 -0
- package/dist/ai/llmprompts/promptRegistry.d.ts +2 -0
- package/dist/ai/llmprompts/promptRegistry.js +40 -0
- package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.d.ts +2 -0
- package/{src/ai/llmprompts/systemPrompts/actionExtractorPrompt.ts → dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js} +39 -49
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +32 -0
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.js +44 -0
- package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.d.ts +1 -0
- package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +51 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +232 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +43 -0
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +53 -0
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +45 -0
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +32 -0
- package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.js +56 -0
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +71 -0
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +46 -0
- package/dist/ai/llmprompts/systemPrompts/visionPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +16 -0
- package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.js +19 -0
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.js +56 -0
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.js +36 -0
- package/dist/ai/llmprompts/userPrompts/userPrompt.d.ts +5 -0
- package/dist/ai/llmprompts/userPrompts/userPrompt.js +34 -0
- package/dist/automation/actions/executor.d.ts +263 -0
- package/dist/automation/actions/executor.js +4327 -0
- package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.js +14 -0
- package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.js +14 -0
- package/dist/automation/actions/interaction/alert/enterDataToAlert.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/enterDataToAlert.js +14 -0
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +13 -0
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +20 -0
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +13 -0
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +20 -0
- package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.d.ts +2 -0
- package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.js +15 -0
- package/dist/automation/actions/interaction/clear/clear.d.ts +2 -0
- package/dist/automation/actions/interaction/clear/clear.js +48 -0
- package/dist/automation/actions/interaction/clear/clearAndEnter.d.ts +2 -0
- package/dist/automation/actions/interaction/clear/clearAndEnter.js +52 -0
- package/dist/automation/actions/interaction/click/click.d.ts +2 -0
- package/dist/automation/actions/interaction/click/click.js +49 -0
- package/dist/automation/actions/interaction/click/clickNtimes.d.ts +2 -0
- package/dist/automation/actions/interaction/click/clickNtimes.js +55 -0
- package/dist/automation/actions/interaction/click/clickUsingJs.d.ts +2 -0
- package/dist/automation/actions/interaction/click/clickUsingJs.js +25 -0
- package/dist/automation/actions/interaction/click/doubleClick.d.ts +2 -0
- package/dist/automation/actions/interaction/click/doubleClick.js +55 -0
- package/dist/automation/actions/interaction/click/rightClick.d.ts +2 -0
- package/dist/automation/actions/interaction/click/rightClick.js +24 -0
- package/dist/automation/actions/interaction/click/waitAndClick.d.ts +2 -0
- package/dist/automation/actions/interaction/click/waitAndClick.js +69 -0
- package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.d.ts +2 -0
- package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +33 -0
- package/dist/automation/actions/interaction/enterActions/enterInput.d.ts +2 -0
- package/dist/automation/actions/interaction/enterActions/enterInput.js +58 -0
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.d.ts +2 -0
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +99 -0
- package/dist/automation/actions/interaction/enterActions/enterUrl.d.ts +2 -0
- package/dist/automation/actions/interaction/enterActions/enterUrl.js +40 -0
- package/dist/automation/actions/interaction/enterActions/enterusingJs.d.ts +2 -0
- package/dist/automation/actions/interaction/enterActions/enterusingJs.js +28 -0
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.d.ts +2 -0
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +71 -0
- package/dist/automation/actions/interaction/find/findElements.d.ts +2 -0
- package/dist/automation/actions/interaction/find/findElements.js +46 -0
- package/dist/automation/actions/interaction/get/browserWindowGetPosition.d.ts +2 -0
- package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +13 -0
- package/dist/automation/actions/interaction/get/getAllBrokenImages.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllBrokenImages.js +13 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +13 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +13 -0
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +13 -0
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +13 -0
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +13 -0
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +13 -0
- package/dist/automation/actions/interaction/get/getAllCookieNames.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllCookieNames.js +13 -0
- package/dist/automation/actions/interaction/get/getAllCookieValues.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllCookieValues.js +13 -0
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +29 -0
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +28 -0
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +34 -0
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +30 -0
- package/dist/automation/actions/interaction/get/getAllWindowHandles.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAllWindowHandles.js +13 -0
- package/dist/automation/actions/interaction/get/getAttribute.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAttribute.js +61 -0
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +24 -0
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +24 -0
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +24 -0
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +29 -0
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +24 -0
- package/dist/automation/actions/interaction/get/getAudioDimension.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioDimension.js +30 -0
- package/dist/automation/actions/interaction/get/getAudioHeight.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioHeight.js +26 -0
- package/dist/automation/actions/interaction/get/getAudioMediaLength.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioMediaLength.js +24 -0
- package/dist/automation/actions/interaction/get/getAudioMediaSource.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioMediaSource.js +31 -0
- package/dist/automation/actions/interaction/get/getAudioWidth.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getAudioWidth.js +26 -0
- package/dist/automation/actions/interaction/get/getBestPracticesScore.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getBestPracticesScore.js +15 -0
- package/dist/automation/actions/interaction/get/getBrowserCount.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getBrowserCount.js +13 -0
- package/dist/automation/actions/interaction/get/getBrowserVersion.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getBrowserVersion.js +13 -0
- package/dist/automation/actions/interaction/get/getCapabilityNames.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCapabilityNames.js +13 -0
- package/dist/automation/actions/interaction/get/getClipBoardText.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getClipBoardText.js +13 -0
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +22 -0
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +22 -0
- package/dist/automation/actions/interaction/get/getCssValue.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCssValue.js +25 -0
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemDay.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemMonth.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemYear.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +13 -0
- package/dist/automation/actions/interaction/get/getCurrentWindowHandle.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +31 -0
- package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +16 -0
- package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +16 -0
- package/dist/automation/actions/interaction/get/getDateWithGivenFormat.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +28 -0
- package/dist/automation/actions/interaction/get/getDriverInstance.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getDriverInstance.js +31 -0
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +13 -0
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +30 -0
- package/dist/automation/actions/interaction/get/getFullPaintTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getFullPaintTime.js +13 -0
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +13 -0
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +13 -0
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +24 -0
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +13 -0
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +31 -0
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +13 -0
- package/dist/automation/actions/interaction/get/getListBoxSize.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getListBoxSize.js +29 -0
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +48 -0
- package/dist/automation/actions/interaction/get/getLocation.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getLocation.js +53 -0
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +13 -0
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +13 -0
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +13 -0
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +13 -0
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +13 -0
- package/dist/automation/actions/interaction/get/getOptions.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getOptions.js +23 -0
- package/dist/automation/actions/interaction/get/getPageTitle.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getPageTitle.js +13 -0
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +13 -0
- package/dist/automation/actions/interaction/get/getPwaScore.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getPwaScore.js +15 -0
- package/dist/automation/actions/interaction/get/getRect.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getRect.js +68 -0
- package/dist/automation/actions/interaction/get/getScreenshot.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getScreenshot.js +35 -0
- package/dist/automation/actions/interaction/get/getScreenshotAs.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getScreenshotAs.js +53 -0
- package/dist/automation/actions/interaction/get/getSeoScore.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSeoScore.js +15 -0
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +15 -0
- package/dist/automation/actions/interaction/get/getSingleApiResponse.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSingleApiResponse.js +23 -0
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +22 -0
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +25 -0
- package/dist/automation/actions/interaction/get/getSize.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSize.js +52 -0
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +13 -0
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +19 -0
- package/dist/automation/actions/interaction/get/getSystemProperty.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getSystemProperty.js +40 -0
- package/dist/automation/actions/interaction/get/getTagName.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getTagName.js +54 -0
- package/dist/automation/actions/interaction/get/getText.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getText.js +53 -0
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +30 -0
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +13 -0
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +20 -0
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +13 -0
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +13 -0
- package/dist/automation/actions/interaction/get/getValueByCookieName.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getValueByCookieName.js +21 -0
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +20 -0
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +15 -0
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +24 -0
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +24 -0
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +24 -0
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +34 -0
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +24 -0
- package/dist/automation/actions/interaction/get/getVideoDimension.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoDimension.js +27 -0
- package/dist/automation/actions/interaction/get/getVideoHeight.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoHeight.js +24 -0
- package/dist/automation/actions/interaction/get/getVideoMediaLength.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoMediaLength.js +24 -0
- package/dist/automation/actions/interaction/get/getVideoMediaSource.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoMediaSource.js +32 -0
- package/dist/automation/actions/interaction/get/getVideoWidth.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getVideoWidth.js +24 -0
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +13 -0
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +24 -0
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +13 -0
- package/dist/automation/actions/interaction/get/getWrappedElement.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getWrappedElement.js +24 -0
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +33 -0
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +13 -0
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +55 -0
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +13 -0
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.d.ts +2 -0
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +54 -0
- package/dist/automation/actions/interaction/iframe/switchToDefaultContent.d.ts +2 -0
- package/dist/automation/actions/interaction/iframe/switchToDefaultContent.js +14 -0
- package/dist/automation/actions/interaction/maximize/maximize.d.ts +2 -0
- package/dist/automation/actions/interaction/maximize/maximize.js +15 -0
- package/dist/automation/actions/interaction/maximize/minimize.d.ts +2 -0
- package/dist/automation/actions/interaction/maximize/minimize.js +15 -0
- package/dist/automation/actions/interaction/navigation/goBack.d.ts +2 -0
- package/dist/automation/actions/interaction/navigation/goBack.js +14 -0
- package/dist/automation/actions/interaction/navigation/navigate.d.ts +2 -0
- package/dist/automation/actions/interaction/navigation/navigate.js +14 -0
- package/dist/automation/actions/interaction/navigation/refresh.d.ts +2 -0
- package/dist/automation/actions/interaction/navigation/refresh.js +14 -0
- package/dist/automation/actions/interaction/press/mobPressBackKey.d.ts +2 -0
- package/dist/automation/actions/interaction/press/mobPressBackKey.js +16 -0
- package/dist/automation/actions/interaction/press/pressAnyKey.d.ts +2 -0
- package/dist/automation/actions/interaction/press/pressAnyKey.js +69 -0
- package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.d.ts +2 -0
- package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.js +77 -0
- package/dist/automation/actions/interaction/press/pressEnterKey.d.ts +2 -0
- package/dist/automation/actions/interaction/press/pressEnterKey.js +37 -0
- package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.d.ts +2 -0
- package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.js +24 -0
- package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.d.ts +2 -0
- package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.js +33 -0
- package/dist/automation/actions/interaction/scroll/scrollToElement.d.ts +2 -0
- package/dist/automation/actions/interaction/scroll/scrollToElement.js +23 -0
- package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.d.ts +2 -0
- package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.js +24 -0
- package/dist/automation/actions/interaction/set/setClipBoardText.d.ts +2 -0
- package/dist/automation/actions/interaction/set/setClipBoardText.js +35 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomClick.d.ts +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomClick.js +16 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.d.ts +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +16 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.d.ts +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +16 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.d.ts +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.js +21 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.d.ts +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.js +16 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.d.ts +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.js +16 -0
- package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.js +14 -0
- package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.js +14 -0
- package/dist/automation/actions/interaction/switch/switchToParentWindow.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToParentWindow.js +15 -0
- package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.js +14 -0
- package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.js +14 -0
- package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.js +15 -0
- package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.d.ts +2 -0
- package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.js +15 -0
- package/dist/automation/actions/interaction/upload/uploadfile.d.ts +2 -0
- package/dist/automation/actions/interaction/upload/uploadfile.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.js +55 -0
- package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.js +40 -0
- package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.js +20 -0
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +42 -0
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.js +48 -0
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +72 -0
- package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.js +55 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +24 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +25 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +23 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +22 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +22 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +22 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +25 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +25 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +25 -0
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +34 -0
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +41 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +61 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +65 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +65 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +65 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +65 -0
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +98 -0
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +71 -0
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +37 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +20 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.js +38 -0
- package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.js +22 -0
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +25 -0
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +22 -0
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +39 -0
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +36 -0
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +28 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +35 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +33 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.js +49 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.js +54 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +28 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +40 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +40 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +28 -0
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +53 -0
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.js +28 -0
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.js +35 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.js +33 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.js +31 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.js +33 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.js +38 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.js +38 -0
- package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +74 -0
- package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.js +23 -0
- package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.js +46 -0
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +25 -0
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +28 -0
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +36 -0
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +73 -0
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +23 -0
- package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.js +56 -0
- package/dist/automation/actions/interaction/verify/VerifyPwaScore.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyPwaScore.js +44 -0
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.js +32 -0
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.js +30 -0
- package/dist/automation/actions/interaction/verify/VerifySeoScore.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifySeoScore.js +53 -0
- package/dist/automation/actions/interaction/verify/VerifyTagName.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyTagName.js +30 -0
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +53 -0
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +37 -0
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +23 -0
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +39 -0
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.js +32 -0
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +37 -0
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +71 -0
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +71 -0
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +65 -0
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +63 -0
- package/dist/automation/actions/interaction/verify/verifypartialtext.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/verifypartialtext.js +106 -0
- package/dist/automation/actions/interaction/verify/verifytext.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/verifytext.js +111 -0
- package/dist/automation/actions/interaction/wait/wait.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/wait.js +14 -0
- package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.js +68 -0
- package/dist/automation/actions/interaction/wait/waitTillElementContainsText.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/waitTillElementContainsText.js +62 -0
- package/dist/automation/actions/interaction/wait/waitTillElementHasText.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/waitTillElementHasText.js +56 -0
- package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.js +56 -0
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.js +55 -0
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.d.ts +2 -0
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.js +50 -0
- package/{src/automation/actions/interface/waitActionInterface.ts → dist/automation/actions/interface/IframeInterface.d.ts} +2 -3
- package/dist/automation/actions/interface/IframeInterface.js +1 -0
- package/dist/automation/actions/interface/alertActionInterface.d.ts +37 -0
- package/dist/automation/actions/interface/alertActionInterface.js +1 -0
- package/dist/automation/actions/interface/clearActionInterface.d.ts +25 -0
- package/dist/automation/actions/interface/clearActionInterface.js +1 -0
- package/dist/automation/actions/interface/clickActionInterface.d.ts +81 -0
- package/dist/automation/actions/interface/clickActionInterface.js +1 -0
- package/dist/automation/actions/interface/dragAndDropToElementInterface.d.ts +17 -0
- package/dist/automation/actions/interface/dragAndDropToElementInterface.js +1 -0
- package/dist/automation/actions/interface/findActionInterface.d.ts +14 -0
- package/dist/automation/actions/interface/findActionInterface.js +1 -0
- package/dist/automation/actions/interface/getActionInterface.d.ts +763 -0
- package/dist/automation/actions/interface/getActionInterface.js +1 -0
- package/dist/automation/actions/interface/interactionActionInterface.d.ts +68 -0
- package/dist/automation/actions/interface/interactionActionInterface.js +1 -0
- package/dist/automation/actions/interface/maximizeAndMinimizeInterface.d.ts +9 -0
- package/dist/automation/actions/interface/maximizeAndMinimizeInterface.js +1 -0
- package/dist/automation/actions/interface/navigationActionInterface.d.ts +19 -0
- package/dist/automation/actions/interface/navigationActionInterface.js +1 -0
- package/dist/automation/actions/interface/pressActionInterface.d.ts +23 -0
- package/dist/automation/actions/interface/pressActionInterface.js +1 -0
- package/dist/automation/actions/interface/scrollActionInterface.d.ts +40 -0
- package/dist/automation/actions/interface/scrollActionInterface.js +1 -0
- package/dist/automation/actions/interface/setActionInterface.d.ts +7 -0
- package/dist/automation/actions/interface/setActionInterface.js +1 -0
- package/dist/automation/actions/interface/shadowDomInterface.d.ts +72 -0
- package/dist/automation/actions/interface/shadowDomInterface.js +1 -0
- package/dist/automation/actions/interface/switchingActionInterface.d.ts +86 -0
- package/dist/automation/actions/interface/switchingActionInterface.js +1 -0
- package/dist/automation/actions/interface/uploadFile.d.ts +14 -0
- package/dist/automation/actions/interface/uploadFile.js +1 -0
- package/dist/automation/actions/interface/verifyActionInterface.d.ts +726 -0
- package/dist/automation/actions/interface/verifyActionInterface.js +1 -0
- package/dist/automation/actions/interface/waitActionInterface.d.ts +76 -0
- package/dist/automation/actions/interface/waitActionInterface.js +1 -0
- package/dist/automation/browserSession/initiateBrowserSession.d.ts +10 -0
- package/dist/automation/browserSession/initiateBrowserSession.js +42 -0
- package/dist/automation/mobileSession/initiateMobileSession.d.ts +31 -0
- package/dist/automation/mobileSession/initiateMobileSession.js +47 -0
- package/dist/core/constants/allAction.d.ts +1 -0
- package/dist/core/constants/allAction.js +20 -0
- package/dist/core/constants/defaultValues.d.ts +1 -0
- package/dist/core/constants/defaultValues.js +1 -0
- package/dist/core/constants/supportedActions.d.ts +2 -0
- package/dist/core/constants/supportedActions.js +32 -0
- package/dist/core/interfaces/StableDomInterface.d.ts +5 -0
- package/dist/core/interfaces/StableDomInterface.js +1 -0
- package/dist/core/interfaces/actionInterface.d.ts +245 -0
- package/dist/core/interfaces/actionInterface.js +1 -0
- package/dist/core/interfaces/automationRunnerInterface.d.ts +4 -0
- package/dist/core/interfaces/automationRunnerInterface.js +1 -0
- package/{src/core/interfaces/browserCapabilitiesInterface.ts → dist/core/interfaces/browserCapabilitiesInterface.d.ts} +1 -3
- package/dist/core/interfaces/browserCapabilitiesInterface.js +1 -0
- package/{src/core/interfaces/browserConfigurationInterface.ts → dist/core/interfaces/browserConfigurationInterface.d.ts} +1 -1
- package/dist/core/interfaces/browserConfigurationInterface.js +1 -0
- package/{src/core/interfaces/domAnalysisInterface.ts → dist/core/interfaces/domAnalysisInterface.d.ts} +0 -5
- package/dist/core/interfaces/domAnalysisInterface.js +1 -0
- package/dist/core/interfaces/errorInfoInterface.d.ts +7 -0
- package/dist/core/interfaces/errorInfoInterface.js +1 -0
- package/dist/core/interfaces/executionDetails.d.ts +32 -0
- package/dist/core/interfaces/executionDetails.js +1 -0
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.d.ts +39 -0
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.js +1 -0
- package/{src/core/interfaces/llmConfigurationInterface.ts → dist/core/interfaces/llmConfigurationInterface.d.ts} +1 -1
- package/dist/core/interfaces/llmConfigurationInterface.js +1 -0
- package/{src/core/interfaces/llmResponseInterface.ts → dist/core/interfaces/llmResponseInterface.d.ts} +23 -11
- package/dist/core/interfaces/llmResponseInterface.js +1 -0
- package/{src/core/interfaces/promptInterface.ts → dist/core/interfaces/promptInterface.d.ts} +20 -2
- package/dist/core/interfaces/promptInterface.js +1 -0
- package/dist/core/interfaces/scriptGenrationDataInterface.d.ts +11 -0
- package/dist/core/interfaces/scriptGenrationDataInterface.js +1 -0
- package/dist/core/interfaces/simplifyAndFlattenInterface.d.ts +13 -0
- package/dist/core/interfaces/simplifyAndFlattenInterface.js +1 -0
- package/dist/core/interfaces/toolsInterface.d.ts +5 -0
- package/dist/core/interfaces/toolsInterface.js +1 -0
- package/dist/core/main/actionHandlerFactory.d.ts +4 -0
- package/dist/core/main/actionHandlerFactory.js +704 -0
- package/{src/core/main/executionContext.ts → dist/core/main/executionContext.d.ts} +9 -12
- package/dist/core/main/executionContext.js +15 -0
- package/dist/core/main/runAutomationScript.d.ts +11 -0
- package/dist/core/main/runAutomationScript.js +553 -0
- package/dist/core/main/stepProcessor.d.ts +23 -0
- package/dist/core/main/stepProcessor.js +14 -0
- package/dist/core/types/llmResponseType.d.ts +2 -0
- package/dist/core/types/llmResponseType.js +1 -0
- package/dist/core/types/promptMap.d.ts +7 -0
- package/dist/core/types/promptMap.js +1 -0
- package/dist/core/types/promptType.d.ts +11 -0
- package/dist/core/types/promptType.js +12 -0
- package/dist/core/types/scriptTypesType.d.ts +1 -0
- package/dist/core/types/scriptTypesType.js +1 -0
- package/dist/core/types/visionllmInputType.d.ts +9 -0
- package/dist/core/types/visionllmInputType.js +1 -0
- package/dist/domAnalysis/getRelaventElements.d.ts +12 -0
- package/dist/domAnalysis/getRelaventElements.js +25 -0
- package/dist/domAnalysis/relativeElementsFromDom.d.ts +4 -0
- package/dist/domAnalysis/relativeElementsFromDom.js +193 -0
- package/dist/domAnalysis/searchBest.d.ts +8 -0
- package/dist/domAnalysis/searchBest.js +208 -0
- package/dist/domAnalysis/simplifyAndFlatten.d.ts +5 -0
- package/dist/domAnalysis/simplifyAndFlatten.js +186 -0
- package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.d.ts +24 -0
- package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.js +511 -0
- package/dist/fireflinkData/fireflinkLocators/getListOfLocators.d.ts +3 -0
- package/dist/fireflinkData/fireflinkLocators/getListOfLocators.js +24 -0
- package/dist/fireflinkData/fireflinkLocators/typeList.d.ts +1 -0
- package/{src/fireflinkData/fireflinkLocators/typeList.ts → dist/fireflinkData/fireflinkLocators/typeList.js} +6 -12
- package/dist/fireflinkData/fireflinkScript/scriptGenrationData.d.ts +14 -0
- package/dist/fireflinkData/fireflinkScript/scriptGenrationData.js +60 -0
- package/dist/imageAnalysisMobile/annotatedScreenshotMobile.d.ts +1 -0
- package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +82 -0
- package/dist/imageAnalysisMobile/annotatedScreenshotMobileInterface.d.ts +6 -0
- package/dist/imageAnalysisMobile/annotatedScreenshotMobileInterface.js +1 -0
- package/dist/imageAnalysisWeb/annotateScreenshot.d.ts +2 -0
- package/dist/imageAnalysisWeb/annotateScreenshot.js +139 -0
- package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.d.ts +1 -0
- package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.js +28 -0
- package/dist/imageAnalysisWeb/screenshotInterface.d.ts +14 -0
- package/dist/imageAnalysisWeb/screenshotInterface.js +1 -0
- package/{src/index.ts → dist/index.d.ts} +0 -3
- package/dist/index.js +4 -0
- package/dist/llmConfig/llmConfiguration.d.ts +5 -0
- package/dist/llmConfig/llmConfiguration.js +18 -0
- package/dist/service/api/fireflinkApi.service.d.ts +4 -0
- package/dist/service/api/fireflinkApi.service.js +22 -0
- package/dist/service/kafka/fireflinkKafka.service.d.ts +7 -0
- package/dist/service/kafka/fireflinkKafka.service.js +22 -0
- package/dist/service/scriptRunner.service.d.ts +10 -0
- package/dist/service/scriptRunner.service.js +36 -0
- package/dist/tests/Framework.d.ts +0 -0
- package/dist/tests/Framework.js +62 -0
- package/dist/tests/test12.d.ts +1 -0
- package/dist/tests/test12.js +51 -0
- package/dist/tests/test3.d.ts +2 -0
- package/dist/tests/test3.js +19 -0
- package/dist/utils/DomExtraction/jsForAttributeInjection.d.ts +5 -0
- package/dist/utils/DomExtraction/jsForAttributeInjection.js +256 -0
- package/dist/utils/InstancesDetails/getInstancesInfo.d.ts +1 -0
- package/dist/utils/InstancesDetails/getInstancesInfo.js +9 -0
- package/dist/utils/alertPopup/isAlertPresent.d.ts +2 -0
- package/dist/utils/alertPopup/isAlertPresent.js +11 -0
- package/dist/utils/alertPopup/isAlertPresentInterface.d.ts +3 -0
- package/dist/utils/alertPopup/isAlertPresentInterface.js +1 -0
- package/dist/utils/helpers/enterActionHelper.d.ts +10 -0
- package/dist/utils/helpers/enterActionHelper.js +110 -0
- package/dist/utils/helpers/imageUtils.d.ts +6 -0
- package/dist/utils/helpers/imageUtils.js +11 -0
- package/dist/utils/helpers/sameActionsHelper.d.ts +1 -0
- package/dist/utils/helpers/sameActionsHelper.js +52 -0
- package/dist/utils/helpers/xpathcreation.d.ts +1 -0
- package/dist/utils/helpers/xpathcreation.js +39 -0
- package/dist/utils/iframesExtraction/findElementUsingFF.d.ts +2 -0
- package/dist/utils/iframesExtraction/findElementUsingFF.js +32 -0
- package/dist/utils/iframesExtraction/iframeInterface.d.ts +17 -0
- package/dist/utils/iframesExtraction/iframeInterface.js +1 -0
- package/dist/utils/iframesExtraction/switchToIframeByMeta.d.ts +2 -0
- package/dist/utils/iframesExtraction/switchToIframeByMeta.js +22 -0
- package/dist/utils/javascript/jsFindElement.d.ts +1 -0
- package/{src/utils/javascript/jsFindElement.ts → dist/utils/javascript/jsFindElement.js} +168 -160
- package/dist/utils/javascript/jsForShadowRoot.d.ts +6 -0
- package/{src/utils/javascript/jsForShadowRoot.ts → dist/utils/javascript/jsForShadowRoot.js} +203 -210
- package/dist/utils/javascript/jsForToaster.d.ts +1 -0
- package/{src/utils/javascript/jsForToaster.ts → dist/utils/javascript/jsForToaster.js} +59 -59
- package/dist/utils/javascript/jsForVision.d.ts +2 -0
- package/dist/utils/javascript/jsForVision.js +148 -0
- package/dist/utils/logger/logData.d.ts +8 -0
- package/dist/utils/logger/logData.js +107 -0
- package/dist/utils/mobileXpath/findXpathFromIndex.d.ts +2 -0
- package/dist/utils/mobileXpath/findXpathFromIndex.js +61 -0
- package/dist/utils/mobileXpath/findXpathFromIndexInterface.d.ts +4 -0
- package/dist/utils/mobileXpath/findXpathFromIndexInterface.js +1 -0
- package/dist/utils/newTab/newTabTracker.d.ts +2 -0
- package/dist/utils/newTab/newTabTracker.js +38 -0
- package/package.json +68 -53
- package/ARCHITECTURE.md +0 -112
- package/FireFlink_Architecture.drawio +0 -68
- package/ONBOARDING.md +0 -29
- package/RELEASE_GUIDE.md +0 -15
- package/TECHNICAL_DEEP_DIVE.md +0 -26
- package/bitbucket-pipelines.yml +0 -36
- package/eslint.config.ts +0 -29
- package/src/ai/llmcalls/decodeApiKey.ts +0 -14
- package/src/ai/llmcalls/llmAction.ts +0 -89
- package/src/ai/llmprompts/promptRegistry.ts +0 -16
- package/src/ai/llmprompts/systemPrompts/errorDescriptionPrompt.ts +0 -23
- package/src/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.ts +0 -173
- package/src/ai/llmprompts/systemPrompts/userStoryToListPrompt.ts +0 -24
- package/src/ai/llmprompts/systemPrompts/visionPrompt.ts +0 -28
- package/src/ai/llmprompts/userPrompts/userPrompt.ts +0 -41
- package/src/automation/actions/executor.ts +0 -75
- package/src/automation/actions/interaction/click.ts +0 -25
- package/src/automation/actions/interaction/enterInput.ts +0 -36
- package/src/automation/actions/interface/interactionActionInterface.ts +0 -27
- package/src/automation/actions/interface/navigationActionInterface.ts +0 -22
- package/src/automation/actions/navigation/getTitle.ts +0 -9
- package/src/automation/actions/navigation/goBack.ts +0 -9
- package/src/automation/actions/navigation/navigate.ts +0 -10
- package/src/automation/actions/navigation/refresh.ts +0 -9
- package/src/automation/actions/wait/wait.ts +0 -10
- package/src/automation/browserSession/initiateBrowserSession.ts +0 -81
- package/src/core/constants/supportedActions.ts +0 -8
- package/src/core/interfaces/StableDomInterface.ts +0 -6
- package/src/core/interfaces/actionInterface.ts +0 -13
- package/src/core/interfaces/automationRunnerInterface.ts +0 -3
- package/src/core/interfaces/executionDetails.ts +0 -29
- package/src/core/interfaces/fireflinkScriptPayloadInterface.ts +0 -39
- package/src/core/interfaces/scriptGenrationDataInterface.ts +0 -16
- package/src/core/interfaces/toolsInterface.ts +0 -5
- package/src/core/main/actionHandlerFactory.ts +0 -86
- package/src/core/main/runAutomationScript.ts +0 -254
- package/src/core/main/stepProcessor.ts +0 -28
- package/src/core/types/llmResponseType.ts +0 -11
- package/src/core/types/promptMap.ts +0 -7
- package/src/core/types/promptType.ts +0 -7
- package/src/core/types/visionllmInputType.ts +0 -4
- package/src/domAnalysis/getRelaventElements.ts +0 -28
- package/src/domAnalysis/relativeElementsFromDom.ts +0 -94
- package/src/domAnalysis/searchBest.ts +0 -165
- package/src/domAnalysis/simplifyAndFlatten.ts +0 -118
- package/src/fireflinkData/fireflinkLocators/elementsFromHTML.ts +0 -656
- package/src/fireflinkData/fireflinkLocators/getListOfLocators.ts +0 -31
- package/src/fireflinkData/fireflinkScript/scriptGenrationData.ts +0 -30
- package/src/llmConfig/llmConfiguration.ts +0 -26
- package/src/service/fireflinkApi.service.ts +0 -46
- package/src/service/scriptRunner.service.ts +0 -83
- package/src/utils/DomExtraction/jsForAttributeInjection.ts +0 -322
- package/src/utils/helpers/enterActionHelper.ts +0 -94
- package/src/utils/logger/logData.ts +0 -81
- package/tsconfig.json +0 -26
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { logger } from "../../utils/logger/logData.js";
|
|
2
|
+
export async function getAnnotatedDOM(browser) {
|
|
3
|
+
return await browser.execute(() => {
|
|
4
|
+
let nodeIndex = 0;
|
|
5
|
+
// const xpaths: Record<string, string> = {};
|
|
6
|
+
// ==========================================================
|
|
7
|
+
// COVERAGE CHECK
|
|
8
|
+
// ==========================================================
|
|
9
|
+
function getCoverageStatus(el) {
|
|
10
|
+
if (!el || !el.getBoundingClientRect)
|
|
11
|
+
return "unknown";
|
|
12
|
+
const rect = el.getBoundingClientRect();
|
|
13
|
+
if (rect.width === 0 || rect.height === 0)
|
|
14
|
+
return "false";
|
|
15
|
+
const testPoints = [
|
|
16
|
+
[rect.left + 5, rect.top + 5],
|
|
17
|
+
[rect.right - 5, rect.top + 5],
|
|
18
|
+
[rect.left + 5, rect.bottom - 5],
|
|
19
|
+
[rect.right - 5, rect.bottom - 5],
|
|
20
|
+
[rect.left + rect.width / 2, rect.top + rect.height / 2]
|
|
21
|
+
];
|
|
22
|
+
for (const [x, y] of testPoints) {
|
|
23
|
+
const topEl = document.elementFromPoint(x, y);
|
|
24
|
+
if (!topEl)
|
|
25
|
+
continue;
|
|
26
|
+
if (topEl === el || el.contains(topEl))
|
|
27
|
+
continue;
|
|
28
|
+
const style = getComputedStyle(topEl);
|
|
29
|
+
if (style.pointerEvents === "none" ||
|
|
30
|
+
style.opacity === "0" ||
|
|
31
|
+
style.visibility === "hidden")
|
|
32
|
+
continue;
|
|
33
|
+
if (el.closest("label")?.contains(topEl))
|
|
34
|
+
continue;
|
|
35
|
+
if (topEl.closest("label")?.contains(el))
|
|
36
|
+
continue;
|
|
37
|
+
if (el.parentElement?.contains(topEl))
|
|
38
|
+
continue;
|
|
39
|
+
const isBlocking = ["BUTTON", "A"].includes(topEl.tagName) ||
|
|
40
|
+
topEl.onclick ||
|
|
41
|
+
topEl.getAttribute("role") === "button";
|
|
42
|
+
if (isBlocking)
|
|
43
|
+
return "true";
|
|
44
|
+
}
|
|
45
|
+
return "false";
|
|
46
|
+
}
|
|
47
|
+
// ==========================================================
|
|
48
|
+
// VISIBILITY CHECK
|
|
49
|
+
// ==========================================================
|
|
50
|
+
function isUsable(node) {
|
|
51
|
+
const s = getComputedStyle(node);
|
|
52
|
+
if (s.display === "none" ||
|
|
53
|
+
s.visibility === "hidden" ||
|
|
54
|
+
s.opacity === "0" ||
|
|
55
|
+
s.pointerEvents === "none")
|
|
56
|
+
return false;
|
|
57
|
+
const rect = node.getBoundingClientRect();
|
|
58
|
+
if (rect.width === 0 || rect.height === 0)
|
|
59
|
+
return false;
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
// ==========================================================
|
|
63
|
+
// ANNOTATION
|
|
64
|
+
// ==========================================================
|
|
65
|
+
function annotate(node) {
|
|
66
|
+
const s = getComputedStyle(node);
|
|
67
|
+
node.setAttribute("element-visibility", s.visibility || "");
|
|
68
|
+
node.setAttribute("element-pointer-events", s.pointerEvents || "");
|
|
69
|
+
node.setAttribute("element-zindex", s.zIndex || "");
|
|
70
|
+
if (!isUsable(node)) {
|
|
71
|
+
node.setAttribute("element-covered", "true");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
node.setAttribute("element-covered", getCoverageStatus(node));
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
node.setAttribute("element-covered", "unknown");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// ==========================================================
|
|
82
|
+
// XPATH (Shadow + iframe safe)
|
|
83
|
+
// ==========================================================
|
|
84
|
+
function getXPath(node) {
|
|
85
|
+
if (!node || node.nodeType !== 1)
|
|
86
|
+
return "";
|
|
87
|
+
const segments = [];
|
|
88
|
+
let current = node;
|
|
89
|
+
while (current && current.nodeType === 1) {
|
|
90
|
+
const parent = current.parentNode;
|
|
91
|
+
if (parent instanceof ShadowRoot) {
|
|
92
|
+
const host = parent.host;
|
|
93
|
+
const siblings = Array.from(parent.children)
|
|
94
|
+
.filter(n => n.tagName === current.tagName);
|
|
95
|
+
const index = siblings.indexOf(current) + 1;
|
|
96
|
+
segments.unshift("shadow/" +
|
|
97
|
+
current.tagName.toLowerCase() +
|
|
98
|
+
"[" + index + "]");
|
|
99
|
+
current = host;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
let index = 1;
|
|
103
|
+
if (parent && parent.children) {
|
|
104
|
+
const siblings = Array.from(parent.children).filter(n => n.tagName === current.tagName);
|
|
105
|
+
index = siblings.indexOf(current) + 1;
|
|
106
|
+
}
|
|
107
|
+
segments.unshift(current.tagName.toLowerCase() +
|
|
108
|
+
"[" + index + "]");
|
|
109
|
+
if (!parent || parent.nodeType !== 1)
|
|
110
|
+
break;
|
|
111
|
+
current = parent;
|
|
112
|
+
}
|
|
113
|
+
let path = "/" + segments.join("/");
|
|
114
|
+
if (node.ownerDocument !== document) {
|
|
115
|
+
const frameEl = node.ownerDocument.defaultView?.frameElement;
|
|
116
|
+
if (frameEl) {
|
|
117
|
+
let framePath = frameEl.getAttribute("ff-xpath");
|
|
118
|
+
if (!framePath) {
|
|
119
|
+
framePath = getXPath(frameEl);
|
|
120
|
+
}
|
|
121
|
+
path = framePath + path;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return path;
|
|
125
|
+
}
|
|
126
|
+
// ==========================================================
|
|
127
|
+
// TRUE NODE WALK (TreeWalker)
|
|
128
|
+
// ==========================================================
|
|
129
|
+
function walk(root) {
|
|
130
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null);
|
|
131
|
+
let node = walker.currentNode;
|
|
132
|
+
while (node) {
|
|
133
|
+
if (node.nodeType === 1 &&
|
|
134
|
+
!["META", "STYLE", "SCRIPT"]
|
|
135
|
+
.includes(node.tagName)) {
|
|
136
|
+
const fireId = "Fire-Flink-" + nodeIndex++;
|
|
137
|
+
const xpath = getXPath(node);
|
|
138
|
+
node.setAttribute("ff-inspect", fireId);
|
|
139
|
+
node.setAttribute("ff-xpath", xpath);
|
|
140
|
+
// xpaths[fireId] = xpath;
|
|
141
|
+
annotate(node);
|
|
142
|
+
}
|
|
143
|
+
if (node.shadowRoot) {
|
|
144
|
+
walk(node.shadowRoot);
|
|
145
|
+
}
|
|
146
|
+
if (node.tagName === "IFRAME") {
|
|
147
|
+
try {
|
|
148
|
+
const doc = node
|
|
149
|
+
.contentDocument;
|
|
150
|
+
if (doc?.documentElement) {
|
|
151
|
+
walk(doc.documentElement);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
node.setAttribute("ff-cross-origin", "true");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
node = walker.nextNode();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Start traversal
|
|
162
|
+
walk(document.documentElement);
|
|
163
|
+
// ==========================================================
|
|
164
|
+
// SERIALIZER
|
|
165
|
+
// ==========================================================
|
|
166
|
+
function serializeNode(node) {
|
|
167
|
+
if (node.nodeType === Node.TEXT_NODE)
|
|
168
|
+
return node.textContent || "";
|
|
169
|
+
if (node.nodeType !== Node.ELEMENT_NODE)
|
|
170
|
+
return "";
|
|
171
|
+
const el = node;
|
|
172
|
+
const tag = el.tagName.toLowerCase();
|
|
173
|
+
let html = "<" + tag;
|
|
174
|
+
for (const attr of Array.from(el.attributes)) {
|
|
175
|
+
if (attr.name === "srcdoc")
|
|
176
|
+
continue;
|
|
177
|
+
html +=
|
|
178
|
+
" " + attr.name +
|
|
179
|
+
"=\"" +
|
|
180
|
+
attr.value.replace(/"/g, """) +
|
|
181
|
+
"\"";
|
|
182
|
+
}
|
|
183
|
+
html += ">";
|
|
184
|
+
if (el.shadowRoot) {
|
|
185
|
+
html += "<!--#shadow-root-->";
|
|
186
|
+
el
|
|
187
|
+
.shadowRoot
|
|
188
|
+
.childNodes
|
|
189
|
+
.forEach(child => {
|
|
190
|
+
html += serializeNode(child);
|
|
191
|
+
});
|
|
192
|
+
html += "<!--#/shadow-root-->";
|
|
193
|
+
}
|
|
194
|
+
if (tag === "iframe" &&
|
|
195
|
+
el.getAttribute("ff-cross-origin") !== "true") {
|
|
196
|
+
try {
|
|
197
|
+
const doc = el
|
|
198
|
+
.contentDocument;
|
|
199
|
+
if (doc) {
|
|
200
|
+
html += serializeNode(doc.documentElement);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
logger.error("Attribute injection failed", error);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
el.childNodes.forEach(child => {
|
|
208
|
+
html += serializeNode(child);
|
|
209
|
+
});
|
|
210
|
+
html += "</" + tag + ">";
|
|
211
|
+
return html;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
dom: "<!DOCTYPE html>\n" +
|
|
215
|
+
serializeNode(document.documentElement)
|
|
216
|
+
// selectors: xpaths
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
import { DOMParser, XMLSerializer } from "@xmldom/xmldom";
|
|
221
|
+
export async function getAnnotatedDOMForMobile(driver) {
|
|
222
|
+
try {
|
|
223
|
+
// Wait like Python sleep(2)
|
|
224
|
+
await driver.pause(2000);
|
|
225
|
+
const pageSource = await driver.getPageSource();
|
|
226
|
+
if (!pageSource) {
|
|
227
|
+
throw new Error("Unable to capture DOM");
|
|
228
|
+
}
|
|
229
|
+
// Parse XML DOM
|
|
230
|
+
const parser = new DOMParser();
|
|
231
|
+
const xmlDoc = parser.parseFromString(pageSource, "text/xml");
|
|
232
|
+
const allElements = xmlDoc.getElementsByTagName("*");
|
|
233
|
+
let index = 1;
|
|
234
|
+
for (const element of Array.from(allElements)) {
|
|
235
|
+
element.setAttribute("FF-inspecter", `Fire-Flink-${index}`);
|
|
236
|
+
index++;
|
|
237
|
+
}
|
|
238
|
+
// Convert DOM back to string
|
|
239
|
+
const serializer = new XMLSerializer();
|
|
240
|
+
let annotatedXML = serializer.serializeToString(xmlDoc);
|
|
241
|
+
// Preserve XML declaration if present
|
|
242
|
+
if (pageSource.trim().startsWith("<?xml")) {
|
|
243
|
+
const declarationEnd = pageSource.indexOf("?>");
|
|
244
|
+
if (declarationEnd !== -1) {
|
|
245
|
+
const declaration = pageSource.substring(0, declarationEnd + 2).trim();
|
|
246
|
+
annotatedXML = `${declaration}\n${annotatedXML}`;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return {
|
|
250
|
+
dom: annotatedXML
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
throw new Error(`Unable to annotate DOM: ${error.message}`, { cause: error });
|
|
255
|
+
}
|
|
256
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getAiInstanceInfo(responseObject: any): Record<string, string>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function getAiInstanceInfo(responseObject) {
|
|
2
|
+
return {
|
|
3
|
+
serviceProvider: responseObject.serviceProvider,
|
|
4
|
+
apiKey: responseObject.instanceDetails.apiKey,
|
|
5
|
+
apiUrl: responseObject.instanceDetails.apiUrl,
|
|
6
|
+
visionApiKey: responseObject.instanceDetails.visionApiKey ?? "c2stcHJvai1zODVFenVfWkdnVUxoT1dNVVhRTmxuUW9ELUpnS3dEMGpvSmJZcDE0YWd4ZEZ3MWM5Mlh5NnlLUFJpYk1XckUtTTRTV1dzcHc0MFQzQmxia0ZKekVkWXRMTm1rWWlJQVRYTUwyTWhhTU5NR3FUWjhZekJYZHdkTHc0MHRVT084d0t6N19wRENYSERSX0NsSVRtTVpjR3VsY3ZlNEE=",
|
|
7
|
+
model: responseObject.model,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface EnterActionResult {
|
|
2
|
+
ffNumber: number;
|
|
3
|
+
xpathPath: string;
|
|
4
|
+
}
|
|
5
|
+
interface EnterActionResultMob {
|
|
6
|
+
xpathPath: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const enterActionHelper: (pageDOM: string, ffNumber: string) => EnterActionResult;
|
|
9
|
+
export declare function enterActionHelperMob(annotatedDom: string, num: string): EnterActionResultMob;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { JSDOM } from "jsdom";
|
|
2
|
+
import { DOMParser } from "@xmldom/xmldom";
|
|
3
|
+
import { getFFIndexAndXPath } from "./xpathcreation.js";
|
|
4
|
+
import { logger } from "../logger/logData.js";
|
|
5
|
+
import xpath from "xpath";
|
|
6
|
+
export const enterActionHelper = (pageDOM, ffNumber) => {
|
|
7
|
+
// Extract numeric part
|
|
8
|
+
const match = ffNumber.match(/\d+$/);
|
|
9
|
+
let numericFF = match ? parseInt(match[0], 10) : 0;
|
|
10
|
+
const parser = new JSDOM(pageDOM);
|
|
11
|
+
const doc = parser.window.document;
|
|
12
|
+
const isEditable = (el) => {
|
|
13
|
+
if (!el)
|
|
14
|
+
return false;
|
|
15
|
+
const tag = el.tagName?.toLowerCase();
|
|
16
|
+
return (["input", "textarea", "select"].includes(tag) ||
|
|
17
|
+
el.getAttribute("contenteditable") === "true");
|
|
18
|
+
};
|
|
19
|
+
const getXPath = (el) => {
|
|
20
|
+
return el?.getAttribute("ff-xpath") || "";
|
|
21
|
+
};
|
|
22
|
+
const element = doc.querySelector(`[ff-inspect="Fire-Flink-${numericFF}"]`);
|
|
23
|
+
if (!element) {
|
|
24
|
+
return { ffNumber: numericFF, xpathPath: "" };
|
|
25
|
+
}
|
|
26
|
+
let xpathPath = "";
|
|
27
|
+
// Current element editable
|
|
28
|
+
if (isEditable(element)) {
|
|
29
|
+
xpathPath = getXPath(element);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Search editable child
|
|
33
|
+
let editableChild = null;
|
|
34
|
+
for (const child of Array.from(element.querySelectorAll("*"))) {
|
|
35
|
+
if (isEditable(child)) {
|
|
36
|
+
editableChild = child;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (editableChild) {
|
|
41
|
+
xpathPath = getXPath(editableChild);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Try next 10 FF elements
|
|
45
|
+
for (let offset = 1; offset <= 10; offset++) {
|
|
46
|
+
const nextNum = numericFF + offset;
|
|
47
|
+
const nextTarget = doc.querySelector(`[ff-inspect="Fire-Flink-${nextNum}"]`);
|
|
48
|
+
if (isEditable(nextTarget)) {
|
|
49
|
+
numericFF = nextNum;
|
|
50
|
+
xpathPath = getXPath(nextTarget);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Final fallback
|
|
55
|
+
if (!xpathPath) {
|
|
56
|
+
xpathPath = getXPath(element);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// console.log("xpathPath", xpathPath);
|
|
61
|
+
return {
|
|
62
|
+
ffNumber: numericFF,
|
|
63
|
+
xpathPath
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export function enterActionHelperMob(annotatedDom, num) {
|
|
67
|
+
const parser = new DOMParser();
|
|
68
|
+
const match = num.match(/\d+$/);
|
|
69
|
+
const numericFF = match ? parseInt(match[0], 10) : 0;
|
|
70
|
+
const xmlDoc = parser.parseFromString(annotatedDom, "text/xml");
|
|
71
|
+
const xpathQuery = `//*[@FF-inspecter='${num}']`;
|
|
72
|
+
const nodes = xpath.select(xpathQuery, xmlDoc);
|
|
73
|
+
const element = nodes.length ? nodes[0] : null;
|
|
74
|
+
let xpathPath = "";
|
|
75
|
+
if (element) {
|
|
76
|
+
const elementClass = (element.getAttribute("class") || "").toLowerCase();
|
|
77
|
+
if (elementClass.includes("edittext") ||
|
|
78
|
+
elementClass.includes("autocompletetextview")) {
|
|
79
|
+
xpathPath = getFFIndexAndXPath(annotatedDom, num);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// check immediate children
|
|
83
|
+
const children = Array.from(element.children);
|
|
84
|
+
let editableChild = null;
|
|
85
|
+
for (const child of children) {
|
|
86
|
+
const childClass = (child.getAttribute("class") || "").toLowerCase();
|
|
87
|
+
if (childClass.includes("edittext") ||
|
|
88
|
+
childClass.includes("autocompletetextview")) {
|
|
89
|
+
editableChild = child;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (editableChild) {
|
|
94
|
+
const childNum = editableChild.getAttribute("FF-inspecter")?.split("-").pop();
|
|
95
|
+
if (childNum) {
|
|
96
|
+
xpathPath = getFFIndexAndXPath(annotatedDom, `Fire-Flink-${childNum}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
xpathPath = getFFIndexAndXPath(annotatedDom, num);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
logger.info(`No element found for ffNumber: ${numericFF} in MOB_Enter action`);
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
xpathPath
|
|
109
|
+
};
|
|
110
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensures that a base64 string or Buffer has the correct data URI prefix for PNG images.
|
|
3
|
+
* @param image The base64 string or Buffer.
|
|
4
|
+
* @returns The base64 string with the `data:image/png;base64,` prefix.
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatImageBase64(image: string | Buffer): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensures that a base64 string or Buffer has the correct data URI prefix for PNG images.
|
|
3
|
+
* @param image The base64 string or Buffer.
|
|
4
|
+
* @returns The base64 string with the `data:image/png;base64,` prefix.
|
|
5
|
+
*/
|
|
6
|
+
export function formatImageBase64(image) {
|
|
7
|
+
if (!image)
|
|
8
|
+
return "";
|
|
9
|
+
const base64 = Buffer.isBuffer(image) ? image.toString("base64") : image;
|
|
10
|
+
return base64.startsWith("data:") ? base64 : `data:image/png;base64,${base64}`;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const sameActionHelper: Record<string, string>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export const sameActionHelper = {
|
|
2
|
+
MOB_Tap: "Click",
|
|
3
|
+
MOB_Enter: "SendKeys",
|
|
4
|
+
MOB_VerifyElementIsDisplayed: "VerifyElementIsDisplayed",
|
|
5
|
+
MOB_VerifyElementIsEnabled: "VerifyElementIsEnabled",
|
|
6
|
+
MOB_VerifyXLocationOfAndroidElement: "VerifyXLocationOfElement",
|
|
7
|
+
MOB_VerifyElementIsSelected: "VerifyElementIsSelected",
|
|
8
|
+
MOB_VerifyYLocationOfAndroidElement: "VerifyYLocationOfElement",
|
|
9
|
+
MOB_VerifyWidthOfElement: "VerifyWidthOfElement",
|
|
10
|
+
MOB_WaitAndClick: "WaitAndClick",
|
|
11
|
+
MOB_GetScreenshot: "GetScreenshot",
|
|
12
|
+
MOB_VerifyText: "VerifyText",
|
|
13
|
+
MOB_VerifyElementNotContainsText: "VerifyElementNotContainsText",
|
|
14
|
+
MOB_VerifyIfXAndYCoordinateOfElement: "VerifyIfXAndYCoordinateOfElement",
|
|
15
|
+
MOB_VerifyPartialAttributeValue: "VerifyPartialAttributeValue",
|
|
16
|
+
MOB_VerifyElementIsClickable: "VerifyElementIsClickable",
|
|
17
|
+
MOB_VerifyElementIsDisabled: "VerifyElementIsDisabled",
|
|
18
|
+
MOB_GetImplicitTimeOut: "GetImplicitTimeOut",
|
|
19
|
+
MOB_GetDriverInstance: "GetDriverInstance",
|
|
20
|
+
MOB_GetCurrentWindowHandle: "GetCurrentWindowHandle",
|
|
21
|
+
MOB_GetTagName: "GetTagName",
|
|
22
|
+
MOB_GetScreenshotAs: "GetScreenshotAs",
|
|
23
|
+
MOB_GetX: "GetXLocationOfWebElement",
|
|
24
|
+
MOB_GetLocation: "GetLocation",
|
|
25
|
+
MOB_GetY: "GetYLocationOfWebElement",
|
|
26
|
+
MOB_GetRect: "GetRect",
|
|
27
|
+
MOB_GetText: "GetText",
|
|
28
|
+
MOB_GetSize: "GetSize",
|
|
29
|
+
MOB_GetAttribute: "GetAttribute",
|
|
30
|
+
MOB_Clear: "Clear",
|
|
31
|
+
MOB_DoubleTap: "DoubleClick",
|
|
32
|
+
MOB_TapNTimes: "ClickNTimes",
|
|
33
|
+
MOB_VerifyPartialText: "VerifyPartialText",
|
|
34
|
+
MOB_VerifyAttributeValue: "VerifyAttributeValue",
|
|
35
|
+
MOB_ClearThenEnterInput: "ClearThenEnterInput",
|
|
36
|
+
MOB_EnterDataAndPressKey: "EnterDataAndPressKey",
|
|
37
|
+
MOB_WaitAndSendKeys: "WaitAndSendKeys",
|
|
38
|
+
MOB_VerifyHeightOfElement: "VerifyHeightOfWebElement",
|
|
39
|
+
MOB_WaitTillPresenceOfElement: "WaitTillPresenceOfElement",
|
|
40
|
+
MOB_WaitTillPresenceOfAllElements: "WaitTillPresenceOfAllElements",
|
|
41
|
+
MOB_WaitTillAttributeOfElementIsString: "WaitTillAttributeOfElementIsString",
|
|
42
|
+
MOB_EnterUrl: "EnterUrl",
|
|
43
|
+
MOB_SetClipBoardText: "SetClipBoardText",
|
|
44
|
+
MOB_PressAnyKeyNTimes: "PressAnyKeyNTimes",
|
|
45
|
+
MOB_FindElements: "FindElements",
|
|
46
|
+
MOB_WaitTillElementIsClickable: "WaitTillElementIsClickable",
|
|
47
|
+
MOB_CheckIfElementIsDisplayed: "CheckIfElementIsDisplayed",
|
|
48
|
+
MOB_PressAnyKey: "PressAnyKey",
|
|
49
|
+
MOB_WaitTillElementHasText: "WaitTillElementHasText",
|
|
50
|
+
MOB_WaitTillElementContainsText: "WaitTillElementContainsText",
|
|
51
|
+
MOB_PressEnterKey: "PressEnterKey"
|
|
52
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getFFIndexAndXPath(annotatedDom: string, fireflinkIndex: string): string;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DOMParser } from "@xmldom/xmldom";
|
|
2
|
+
import xpath from "xpath";
|
|
3
|
+
// import { logger } from "../logger/logData.js";
|
|
4
|
+
export function getFFIndexAndXPath(annotatedDom, fireflinkIndex) {
|
|
5
|
+
try {
|
|
6
|
+
const parser = new DOMParser();
|
|
7
|
+
const xmlDoc = parser.parseFromString(annotatedDom, "text/xml");
|
|
8
|
+
const xpathQuery = `//*[@FF-inspecter='${fireflinkIndex}']`;
|
|
9
|
+
const nodes = xpath.select(xpathQuery, xmlDoc);
|
|
10
|
+
const element = nodes.length ? nodes[0] : null;
|
|
11
|
+
function buildXPath(node) {
|
|
12
|
+
if (node.nodeType !== 1)
|
|
13
|
+
return "";
|
|
14
|
+
const parts = [];
|
|
15
|
+
while (node && node.nodeType === 1) {
|
|
16
|
+
let index = 1;
|
|
17
|
+
let sibling = node.previousSibling;
|
|
18
|
+
while (sibling) {
|
|
19
|
+
if (sibling.nodeType === 1 &&
|
|
20
|
+
sibling.tagName === node.tagName) {
|
|
21
|
+
index++;
|
|
22
|
+
}
|
|
23
|
+
sibling = sibling.previousSibling;
|
|
24
|
+
}
|
|
25
|
+
parts.unshift(`${node.tagName}[${index}]`);
|
|
26
|
+
node = node.parentNode;
|
|
27
|
+
}
|
|
28
|
+
return "/" + parts.join("/");
|
|
29
|
+
}
|
|
30
|
+
let xpathPath = "";
|
|
31
|
+
if (element) {
|
|
32
|
+
xpathPath = buildXPath(element);
|
|
33
|
+
}
|
|
34
|
+
return xpathPath;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error("Error in getFFIndexAndXPath", { cause: error });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { switchToIframeByMeta } from "./switchToIframeByMeta.js";
|
|
2
|
+
export const findElementUsingFF = async (args) => {
|
|
3
|
+
await args.driver.switchToFrame(null);
|
|
4
|
+
const usedElementNames = [];
|
|
5
|
+
for (const frameMeta of args.frames) {
|
|
6
|
+
const xpathUsed = await switchToIframeByMeta(args.driver, frameMeta);
|
|
7
|
+
if (xpathUsed) {
|
|
8
|
+
let finalElementName = args.elementName;
|
|
9
|
+
if (finalElementName) {
|
|
10
|
+
const baseName = finalElementName;
|
|
11
|
+
let newName = baseName;
|
|
12
|
+
let count = 0;
|
|
13
|
+
while (usedElementNames.includes(newName)) {
|
|
14
|
+
count++;
|
|
15
|
+
newName = `${baseName}_${count}`;
|
|
16
|
+
}
|
|
17
|
+
finalElementName = newName;
|
|
18
|
+
usedElementNames.push(finalElementName);
|
|
19
|
+
}
|
|
20
|
+
args.scriptDataAppender.add(async () => ({
|
|
21
|
+
nlpName: 'SwitchToFrameByFrameElement',
|
|
22
|
+
stepInputs: [],
|
|
23
|
+
elementsData: [{
|
|
24
|
+
name: finalElementName,
|
|
25
|
+
type: args.elementType,
|
|
26
|
+
locators: [{ name: "xpath", value: xpathUsed }],
|
|
27
|
+
platform: args.platform
|
|
28
|
+
}]
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ScriptDataAppender } from "../../fireflinkData/fireflinkScript/scriptGenrationData";
|
|
2
|
+
export interface FrameMeta {
|
|
3
|
+
id?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
aria?: string;
|
|
7
|
+
src?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IFindElementUsingFF {
|
|
10
|
+
driver: WebdriverIO.Browser;
|
|
11
|
+
selector: string;
|
|
12
|
+
frames: FrameMeta[];
|
|
13
|
+
scriptDataAppender: ScriptDataAppender;
|
|
14
|
+
elementName: string;
|
|
15
|
+
elementType: string;
|
|
16
|
+
platform: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export async function switchToIframeByMeta(driver, frameMeta) {
|
|
2
|
+
const selectors = [
|
|
3
|
+
frameMeta.id && `//*[@id='${frameMeta.id}']`,
|
|
4
|
+
frameMeta.name && `//*[@name='${frameMeta.name}']`,
|
|
5
|
+
frameMeta.title && `//iframe[@title='${frameMeta.title}']`,
|
|
6
|
+
frameMeta.aria && `//iframe[@aria-label='${frameMeta.aria}']`,
|
|
7
|
+
frameMeta.src && `//iframe[contains(@src,'${frameMeta.src}')]`,
|
|
8
|
+
].filter(Boolean);
|
|
9
|
+
for (const selector of selectors) {
|
|
10
|
+
try {
|
|
11
|
+
const iframe = await driver.$(selector);
|
|
12
|
+
if (await iframe.isExisting()) {
|
|
13
|
+
await driver.switchToFrame(iframe);
|
|
14
|
+
return selector;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Find_element_by_ff_js_script = "\n const target = arguments[0];\n const callback = arguments[arguments.length - 1];\n\n const MAX_WAIT = 2000;\n const INTERVAL = 50;\n const start = Date.now();\n\n // ---------------- FINDER ----------------\n function findByFfInspect(root) {\n const visited = new Set();\n const stack = [{ node: root, frames: [], currentDoc: root }];\n\n while (stack.length > 0) {\n const { node, frames, currentDoc } = stack.pop();\n if (!node) continue;\n\n if (\n node.nodeType === Node.DOCUMENT_NODE ||\n node.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ) {\n if (visited.has(node)) continue;\n visited.add(node);\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n\n if (node.getAttribute && node.getAttribute(\"ff-inspect\") === target) {\n return { node, frames, iframe_dom: currentDoc };\n }\n\n // Shadow DOM\n if (node.shadowRoot) {\n stack.push({\n node: node.shadowRoot,\n frames,\n currentDoc\n });\n }\n\n // Iframe traversal\n if (node.tagName === \"IFRAME\") {\n try {\n const doc = node.contentDocument || node.contentWindow?.document;\n if (doc) {\n const meta = {\n id: node.id || null,\n name: node.getAttribute(\"name\") || null,\n title: node.getAttribute(\"title\") || null,\n aria: node.getAttribute(\"aria-label\") || null,\n src: node.getAttribute(\"src\") || null,\n };\n\n stack.push({\n node: doc,\n frames: [...frames, meta],\n currentDoc: doc\n });\n }\n } catch (e) {}\n }\n\n const kids = node.children || node.childNodes;\n for (let i = kids.length - 1; i >= 0; i--) {\n stack.push({ node: kids[i], frames, currentDoc });\n }\n }\n\n else if (\n node.nodeType === Node.DOCUMENT_NODE ||\n node.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ) {\n const kids = node.childNodes;\n for (let i = kids.length - 1; i >= 0; i--) {\n stack.push({ node: kids[i], frames, currentDoc });\n }\n }\n }\n\n return null;\n }\n\n // ---------------- CLICKABILITY ----------------\n function isClickable(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const tag = el.tagName.toLowerCase();\n if (tag === \"button\" || tag === \"a\") return true;\n if (el.getAttribute(\"role\") === \"button\") return true;\n if (tag === \"input\") {\n const t = (el.getAttribute(\"type\") || \"\").toLowerCase();\n return t === \"button\" || t === \"submit\";\n }\n return false;\n }\n\n function findClickableInside(root) {\n const queue = [root];\n while (queue.length) {\n const node = queue.shift();\n if (isClickable(node)) return node;\n const kids = node.children || node.childNodes;\n for (let k of kids) queue.push(k);\n }\n return null;\n }\n\n // ---------------- XPATH BUILDER ----------------\n function buildXPath(el) {\n if (!el) return null;\n\n if (el.id) return \"//*[@id=\\\"\" + el.id + \"\\\"]\";\n\n const name = el.getAttribute(\"name\");\n if (name) return \"//*[@name=\\\"\" + name + \"\\\"]\";\n\n const text = el.textContent && el.textContent.trim();\n if (text && text.length < 50) {\n const escaped = text.replace(/\"/g, '\\\"');\n const xp = \"//*[text()=\\\"\" + escaped + \"\\\"]\";\n try {\n const n = document.evaluate(xp, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);\n if (n.singleNodeValue === el) return xp;\n } catch {}\n }\n\n const parts = [];\n let node = el;\n\n while (node && node.nodeType === Node.ELEMENT_NODE) {\n let idx = 1;\n let sib = node.previousSibling;\n while (sib) {\n if (sib.nodeType === Node.ELEMENT_NODE && sib.nodeName === node.nodeName) idx++;\n sib = sib.previousSibling;\n }\n parts.unshift(node.nodeName.toLowerCase() + \"[\" + idx + \"]\");\n node = node.parentNode instanceof ShadowRoot ? node.parentNode.host : node.parentNode;\n }\n\n return \"/\" + parts.join(\"/\");\n }\n\n // ---------------- WAIT LOOP ----------------\n (function attempt() {\n const found = findByFfInspect(document);\n\n if (!found) {\n if (Date.now() - start > MAX_WAIT) {\n return callback({ success: false, reason: \"timeout\" });\n }\n return setTimeout(attempt, INTERVAL);\n }\n\n let targetNode = found.node;\n if (!isClickable(targetNode)) {\n const inside = findClickableInside(targetNode);\n if (inside) targetNode = inside;\n }\n\n const xpath_if = buildXPath(targetNode);\n\n return callback({\n success: true,\n xpath_if,\n frames: found.frames,\n iframe_dom_html: found.iframe_dom?.documentElement?.outerHTML || null\n });\n })();\n";
|