ff-automationv2 2.2.23 → 2.2.24
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/dist/ai/llmcalls/decodeApiKey.js +4 -1
- package/dist/ai/llmcalls/llmAction.js +27 -20
- package/dist/ai/llmcalls/parseLlmOputput.js +5 -1
- package/dist/ai/llmprompts/llmPromptTypes/systemPromptTypes.js +2 -1
- package/dist/ai/llmprompts/promptRegistry.js +38 -35
- package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.js +6 -2
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/userPrompts/userPrompt.js +16 -13
- package/dist/automation/actions/executor.js +1064 -1060
- package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/enterDataToAlert.js +4 -1
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +4 -1
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +4 -1
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.js +4 -1
- package/dist/automation/actions/interaction/clear/clear.js +4 -1
- package/dist/automation/actions/interaction/clear/clearAndEnter.js +4 -1
- package/dist/automation/actions/interaction/click/MOB_DoubleTapAtSpecifiedLocation.js +4 -1
- package/dist/automation/actions/interaction/click/click.js +4 -1
- package/dist/automation/actions/interaction/click/clickNtimes.js +4 -1
- package/dist/automation/actions/interaction/click/clickUsingJs.js +4 -1
- package/dist/automation/actions/interaction/click/doubleClick.js +4 -1
- package/dist/automation/actions/interaction/click/rightClick.js +4 -1
- package/dist/automation/actions/interaction/click/tapOnSpecifiedLocation.js +5 -1
- package/dist/automation/actions/interaction/click/waitAndClick.js +7 -4
- package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +4 -1
- package/dist/automation/actions/interaction/elementLessAction/MobCheckIfAppIsClosed.js +4 -1
- package/dist/automation/actions/interaction/elementLessAction/MobRunAppInBackgroundInterface.js +4 -1
- package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.js +4 -1
- package/dist/automation/actions/interaction/elementlessActions/installAPK.js +14 -8
- package/dist/automation/actions/interaction/elementlessActions/isAppInstalled.js +8 -5
- package/dist/automation/actions/interaction/elementlessActions/openAppWithApkFilePath.js +18 -12
- package/dist/automation/actions/interaction/elementlessActions/openMobileApplication.js +4 -1
- package/dist/automation/actions/interaction/elementlessActions/receiveMessageOnEmulator.js +6 -3
- package/dist/automation/actions/interaction/elementlessActions/terminateAppUsingAppPackage.js +6 -3
- package/dist/automation/actions/interaction/elementlessActions/uninstallAPK.js +9 -6
- package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +6 -3
- package/dist/automation/actions/interaction/enterActions/enterInput.js +41 -5
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +7 -4
- package/dist/automation/actions/interaction/enterActions/enterUrl.js +4 -1
- package/dist/automation/actions/interaction/enterActions/enterusingJs.js +8 -5
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +7 -4
- package/dist/automation/actions/interaction/find/MOB_FindElement.js +4 -1
- package/dist/automation/actions/interaction/find/findElements.js +4 -1
- package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAltitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryPercentage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetClipBoardText.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentActivity.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentAppPackage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentContext.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceDate.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSettings.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceStatus.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSystemBars.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentOrientation.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentSessionId.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceLocation.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceName.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceOsVersion.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceUdid.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHourFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetLatitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetLongitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetMinuteFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSecondFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSizeOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSupportedPerformanceDataTypes.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +5 -1
- package/dist/automation/actions/interaction/get/getAllBrokenImages.js +5 -1
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +5 -1
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +5 -1
- package/dist/automation/actions/interaction/get/getAllCookieNames.js +5 -1
- package/dist/automation/actions/interaction/get/getAllCookieValues.js +5 -1
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +5 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +5 -1
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -1
- package/dist/automation/actions/interaction/get/getAttribute.js +7 -4
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioDimension.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioHeight.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioMediaLength.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioMediaSource.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioWidth.js +5 -1
- package/dist/automation/actions/interaction/get/getBestPracticesScore.js +5 -1
- package/dist/automation/actions/interaction/get/getBrowserCount.js +5 -1
- package/dist/automation/actions/interaction/get/getBrowserVersion.js +5 -1
- package/dist/automation/actions/interaction/get/getCapabilityNames.js +5 -1
- package/dist/automation/actions/interaction/get/getClipBoardText.js +5 -1
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +5 -1
- package/dist/automation/actions/interaction/get/getCssValue.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +5 -1
- package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +5 -1
- package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +5 -1
- package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +5 -1
- package/dist/automation/actions/interaction/get/getDriverInstance.js +5 -1
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +5 -1
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +5 -1
- package/dist/automation/actions/interaction/get/getFullPaintTime.js +5 -1
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +5 -1
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +5 -1
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +5 -1
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +5 -1
- package/dist/automation/actions/interaction/get/getListBoxSize.js +6 -3
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +7 -3
- package/dist/automation/actions/interaction/get/getLocation.js +8 -4
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +5 -1
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +5 -1
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +5 -1
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +5 -1
- package/dist/automation/actions/interaction/get/getOptions.js +5 -1
- package/dist/automation/actions/interaction/get/getPageTitle.js +5 -1
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +5 -1
- package/dist/automation/actions/interaction/get/getPwaScore.js +5 -1
- package/dist/automation/actions/interaction/get/getRect.js +8 -4
- package/dist/automation/actions/interaction/get/getScreenshot.js +5 -1
- package/dist/automation/actions/interaction/get/getScreenshotAs.js +5 -1
- package/dist/automation/actions/interaction/get/getSeoScore.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiResponse.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +5 -1
- package/dist/automation/actions/interaction/get/getSize.js +7 -3
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +11 -4
- package/dist/automation/actions/interaction/get/getSystemProperty.js +14 -7
- package/dist/automation/actions/interaction/get/getTagName.js +4 -1
- package/dist/automation/actions/interaction/get/getText.js +8 -4
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +5 -1
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -1
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -1
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +5 -1
- package/dist/automation/actions/interaction/get/getValueByCookieName.js +5 -1
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +5 -1
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoDimension.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoHeight.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoMediaLength.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoMediaSource.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoWidth.js +5 -1
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +5 -1
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +5 -1
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +5 -1
- package/dist/automation/actions/interaction/get/getWrappedElement.js +5 -1
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +6 -3
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +8 -4
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +7 -3
- package/dist/automation/actions/interaction/iframe/switchToDefaultContent.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOff.js +9 -6
- package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOn.js +9 -6
- package/dist/automation/actions/interaction/inputlessActions/Break.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/Continue.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOff.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOn.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/HideKeyboard.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/LockDevice.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/OpenChromeBrowser.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/OpenNotification.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/ResetApp.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/RestartCurrentDevice.js +9 -6
- package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsLandscape.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsPortrait.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOff.js +8 -5
- package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOn.js +8 -5
- package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOff.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOn.js +4 -1
- package/dist/automation/actions/interaction/maximize/maximize.js +4 -1
- package/dist/automation/actions/interaction/maximize/minimize.js +4 -1
- package/dist/automation/actions/interaction/navigation/goBack.js +4 -1
- package/dist/automation/actions/interaction/navigation/navigate.js +4 -1
- package/dist/automation/actions/interaction/navigation/refresh.js +4 -1
- package/dist/automation/actions/interaction/pinch/PinchInByPercentMob.js +4 -1
- package/dist/automation/actions/interaction/pinch/PinchOutByPercentMob.js +4 -1
- package/dist/automation/actions/interaction/press/longPress.js +5 -1
- package/dist/automation/actions/interaction/press/mobPressBackKey.js +4 -1
- package/dist/automation/actions/interaction/press/mobPressBackSpaceKey.js +4 -1
- package/dist/automation/actions/interaction/press/mobPressSpaceKey.js +4 -1
- package/dist/automation/actions/interaction/press/pressAnyKey.js +4 -1
- package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.js +4 -1
- package/dist/automation/actions/interaction/press/pressEnterKey.js +4 -1
- package/dist/automation/actions/interaction/press/pressHomeKey.js +8 -5
- package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.js +4 -1
- package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.js +5 -1
- package/dist/automation/actions/interaction/scroll/scrollToElement.js +4 -1
- package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.js +4 -1
- package/dist/automation/actions/interaction/set/MOB_SetContext.js +5 -1
- package/dist/automation/actions/interaction/set/MOB_SetEmulatorPowerPercentage.js +5 -1
- package/dist/automation/actions/interaction/set/setClipBoardText.js +4 -1
- package/dist/automation/actions/interaction/shadowDom/shadowDomClick.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.js +7 -4
- package/dist/automation/actions/interaction/swipe/swipeDirectionNTimes.js +6 -3
- package/dist/automation/actions/interaction/swipe/swipeDownToElement.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeLeftToElement.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeRightToElement.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeUpToElement.js +11 -8
- package/dist/automation/actions/interaction/swipe/swipeUpToElementForMWeb.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeUsingReferenceElement.js +19 -16
- package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToParentWindow.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.js +4 -1
- package/dist/automation/actions/interaction/upload/uploadfile.js +6 -3
- package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOff.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOn.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAppIsClosed.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsLocked.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsUnlocked.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOff.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOn.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsHidden.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsShown.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOff.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOn.js +5 -1
- package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.js +10 -7
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyPwaScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifySeoScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyTagName.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +7 -4
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +7 -4
- package/dist/automation/actions/interaction/verify/verifypartialtext.js +8 -5
- package/dist/automation/actions/interaction/verify/verifytext.js +13 -10
- package/dist/automation/actions/interaction/wait/MOB_WaitTillAllElementsAreInvisible.ts.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillAttributeOfElementContainsString.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsEnabled.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsInvisible.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsSelected.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsVisible.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillStalenessOfElement.js +5 -1
- package/dist/automation/actions/interaction/wait/wait.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillElementContainsText.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillElementHasText.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.js +6 -3
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.js +4 -1
- package/dist/automation/actions/interface/IframeInterface.js +2 -1
- package/dist/automation/actions/interface/InputlessActionnterface.js +2 -1
- package/dist/automation/actions/interface/alertActionInterface.js +2 -1
- package/dist/automation/actions/interface/clearActionInterface.js +2 -1
- package/dist/automation/actions/interface/clickActionInterface.js +2 -1
- package/dist/automation/actions/interface/dragAndDropToElementInterface.js +2 -1
- package/dist/automation/actions/interface/elelementLessActionInterface.js +2 -1
- package/dist/automation/actions/interface/elementlessInterface.js +2 -1
- package/dist/automation/actions/interface/findActionInterface.js +2 -1
- package/dist/automation/actions/interface/getActionInterface.js +2 -1
- package/dist/automation/actions/interface/interactionActionInterface.js +2 -1
- package/dist/automation/actions/interface/maximizeAndMinimizeInterface.js +2 -1
- package/dist/automation/actions/interface/navigationActionInterface.js +2 -1
- package/dist/automation/actions/interface/pinchActionInterface.js +2 -1
- package/dist/automation/actions/interface/pressActionInterface.js +2 -1
- package/dist/automation/actions/interface/scrollActionInterface.js +2 -1
- package/dist/automation/actions/interface/setActionInterface.js +2 -1
- package/dist/automation/actions/interface/shadowDomInterface.js +2 -1
- package/dist/automation/actions/interface/swipeActionInterface.js +2 -1
- package/dist/automation/actions/interface/switchingActionInterface.js +2 -1
- package/dist/automation/actions/interface/uploadFile.js +2 -1
- package/dist/automation/actions/interface/verifyActionInterface.js +2 -1
- package/dist/automation/actions/interface/waitActionInterface.js +2 -1
- package/dist/automation/browserSession/initiateBrowserSession.js +11 -7
- package/dist/automation/cloudSession/initiateCloudSession.js +11 -7
- package/dist/automation/mobileSession/initiateMobileSession.js +14 -10
- package/dist/core/constants/allAction.js +4 -1
- package/dist/core/constants/defaultValues.js +4 -1
- package/dist/core/constants/supportedActions.js +5 -2
- package/dist/core/interfaces/StableDomInterface.js +2 -1
- package/dist/core/interfaces/actionInterface.js +2 -1
- package/dist/core/interfaces/automationRunnerInterface.js +2 -1
- package/dist/core/interfaces/browserCapabilitiesInterface.js +4 -1
- package/dist/core/interfaces/browserConfigurationInterface.js +2 -1
- package/dist/core/interfaces/cloudConfigInterface.js +2 -1
- package/dist/core/interfaces/domAnalysisInterface.js +2 -1
- package/dist/core/interfaces/errorInfoInterface.js +2 -1
- package/dist/core/interfaces/executionDetails.js +2 -1
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.js +2 -1
- package/dist/core/interfaces/llmConfigurationInterface.js +2 -1
- package/dist/core/interfaces/llmResponseInterface.js +2 -1
- package/dist/core/interfaces/promptInterface.js +3 -1
- package/dist/core/interfaces/scriptGenrationDataInterface.js +2 -1
- package/dist/core/interfaces/simplifyAndFlattenInterface.js +2 -1
- package/dist/core/interfaces/toolsInterface.js +2 -1
- package/dist/core/main/actionHandlerFactory.js +13 -10
- package/dist/core/main/executionContext.js +15 -11
- package/dist/core/main/runAutomationScript.js +114 -110
- package/dist/core/main/stepProcessor.js +7 -3
- package/dist/core/types/browserType.js +4 -1
- package/dist/core/types/cloudServerPortType.js +4 -1
- package/dist/core/types/cloudprotocolType.js +2 -1
- package/dist/core/types/llmResponseType.js +2 -1
- package/dist/core/types/promptMap.js +2 -1
- package/dist/core/types/promptType.js +5 -2
- package/dist/core/types/scriptTypesType.js +2 -1
- package/dist/core/types/visionllmInputType.js +2 -1
- package/dist/domAnalysis/getRelaventElements.js +14 -10
- package/dist/domAnalysis/relativeElementsFromDom.js +5 -1
- package/dist/domAnalysis/searchBest.js +8 -4
- package/dist/domAnalysis/simplifyAndFlatten.js +41 -4
- package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.js +13 -10
- package/dist/fireflinkData/fireflinkLocators/getListOfLocators.js +9 -5
- package/dist/fireflinkData/fireflinkLocators/typeList.js +4 -1
- package/dist/fireflinkData/fireflinkScript/scriptGenrationData.js +5 -1
- package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +11 -8
- package/dist/imageAnalysisMobile/annotatedScreenshotMobileInterface.js +2 -1
- package/dist/imageAnalysisWeb/annotateScreenshot.js +7 -4
- package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.js +8 -5
- package/dist/imageAnalysisWeb/screenshotInterface.js +2 -1
- package/dist/index.js +5 -2
- package/dist/llmConfig/llmConfiguration.js +5 -1
- package/dist/service/api/fireflinkApi.service.js +10 -3
- package/dist/service/fireflink.service.js +10 -6
- package/dist/service/kafka/fireflinkKafka.service.js +12 -8
- package/dist/tests/multiBrowser.d.ts +1 -0
- package/dist/tests/multiBrowser.js +34 -0
- package/dist/tests/poc.js +21 -16
- package/dist/tests/test12.js +12 -7
- package/dist/tests/test3.js +4 -2
- package/dist/tests/tests.data.js +4 -1
- package/dist/utils/DomExtraction/jsForAttributeInjection.js +12 -8
- package/dist/utils/InstancesDetails/getInstancesInfo.js +4 -1
- package/dist/utils/alertPopup/isAlertPresent.js +5 -1
- package/dist/utils/alertPopup/isAlertPresentInterface.js +2 -1
- package/dist/utils/browserCap/capability.js +4 -1
- package/dist/utils/cloudConfig/cloudPath.js +4 -1
- package/dist/utils/helpers/enterActionHelper.js +23 -15
- package/dist/utils/helpers/imageUtils.js +4 -1
- package/dist/utils/helpers/sameActionsHelper.js +4 -1
- package/dist/utils/helpers/xpathcreation.js +11 -5
- package/dist/utils/iframesExtraction/findElementUsingFF.js +7 -3
- package/dist/utils/iframesExtraction/iframeInterface.js +2 -1
- package/dist/utils/iframesExtraction/switchToIframeByMeta.js +4 -1
- package/dist/utils/javascript/jsFindElement.js +4 -1
- package/dist/utils/javascript/jsForShadowRoot.js +9 -6
- package/dist/utils/javascript/jsForToaster.js +4 -1
- package/dist/utils/javascript/jsForVision.js +5 -2
- package/dist/utils/logger/logData.js +28 -21
- package/dist/utils/newTab/newTabTracker.js +4 -1
- package/dist/utils/swipe/domSearchHelper.js +10 -7
- package/dist/utils/swipe/swipeMovement.js +4 -1
- package/package.json +6 -5
package/dist/tests/test12.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
6
|
console.log(new Date().getTime());
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const certPath =
|
|
7
|
+
const index_js_1 = require("../index.js");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const certPath = path_1.default.join("D:", "Bitbucket", "automationV2", "Certificates", "certificate.crt");
|
|
6
11
|
const ssl = {
|
|
7
|
-
ca: [
|
|
12
|
+
ca: [fs_1.default.readFileSync(certPath, "utf-8")],
|
|
8
13
|
rejectUnauthorized: false,
|
|
9
14
|
};
|
|
10
|
-
const runner = new AutomationRunner();
|
|
15
|
+
const runner = new index_js_1.AutomationRunner();
|
|
11
16
|
runner.run({
|
|
12
17
|
userStory: [
|
|
13
18
|
["Open browser"],
|
|
@@ -23,7 +28,7 @@ runner.run({
|
|
|
23
28
|
pageName: "ai-Page"
|
|
24
29
|
}
|
|
25
30
|
},
|
|
26
|
-
sessionPath:
|
|
31
|
+
sessionPath: path_1.default.join("D:", "Bitbucket", "automationV2"),
|
|
27
32
|
serverHost: "https://test3.fireflink.com",
|
|
28
33
|
webSocketId: "",
|
|
29
34
|
generatedBy: "",
|
package/dist/tests/test3.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const webdriverio_1 = require("webdriverio");
|
|
2
4
|
async function runTest() {
|
|
3
|
-
const browser = await remote({
|
|
5
|
+
const browser = await (0, webdriverio_1.remote)({
|
|
4
6
|
logLevel: "debug",
|
|
5
7
|
protocol: "https",
|
|
6
8
|
hostname: "devicefarm.fireflink.com",
|
package/dist/tests/tests.data.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAnnotatedDOM = getAnnotatedDOM;
|
|
4
|
+
exports.getAnnotatedDOMForMobile = getAnnotatedDOMForMobile;
|
|
5
|
+
const logData_js_1 = require("../../utils/logger/logData.js");
|
|
6
|
+
async function getAnnotatedDOM(browser) {
|
|
3
7
|
return await browser.execute(() => {
|
|
4
8
|
let nodeIndex = 0;
|
|
5
9
|
// const xpaths: Record<string, string> = {};
|
|
@@ -201,7 +205,7 @@ export async function getAnnotatedDOM(browser) {
|
|
|
201
205
|
}
|
|
202
206
|
}
|
|
203
207
|
catch (error) {
|
|
204
|
-
logger.error("Attribute injection failed", error);
|
|
208
|
+
logData_js_1.logger.error("Attribute injection failed", error);
|
|
205
209
|
}
|
|
206
210
|
}
|
|
207
211
|
el.childNodes.forEach(child => {
|
|
@@ -217,19 +221,19 @@ export async function getAnnotatedDOM(browser) {
|
|
|
217
221
|
};
|
|
218
222
|
});
|
|
219
223
|
}
|
|
220
|
-
|
|
221
|
-
|
|
224
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
225
|
+
async function getAnnotatedDOMForMobile(driver) {
|
|
222
226
|
try {
|
|
223
227
|
// Wait like Python sleep(2)
|
|
224
228
|
await driver.pause(1000);
|
|
225
229
|
const startTime = Date.now();
|
|
226
230
|
const pageSource = await driver.getPageSource();
|
|
227
|
-
logger.info(`Page source captured in ${Date.now() - startTime}ms`);
|
|
231
|
+
logData_js_1.logger.info(`Page source captured in ${Date.now() - startTime}ms`);
|
|
228
232
|
if (!pageSource) {
|
|
229
233
|
throw new Error("Unable to capture DOM");
|
|
230
234
|
}
|
|
231
235
|
// Parse XML DOM
|
|
232
|
-
const parser = new DOMParser();
|
|
236
|
+
const parser = new xmldom_1.DOMParser();
|
|
233
237
|
const xmlDoc = parser.parseFromString(pageSource, "text/xml");
|
|
234
238
|
const allElements = xmlDoc.getElementsByTagName("*");
|
|
235
239
|
let index = 1;
|
|
@@ -238,7 +242,7 @@ export async function getAnnotatedDOMForMobile(driver) {
|
|
|
238
242
|
index++;
|
|
239
243
|
}
|
|
240
244
|
// Convert DOM back to string
|
|
241
|
-
const serializer = new XMLSerializer();
|
|
245
|
+
const serializer = new xmldom_1.XMLSerializer();
|
|
242
246
|
let annotatedXML = serializer.serializeToString(xmlDoc);
|
|
243
247
|
// Preserve XML declaration if present
|
|
244
248
|
if (pageSource.trim().startsWith("<?xml")) {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAiInstanceInfo = getAiInstanceInfo;
|
|
4
|
+
function getAiInstanceInfo(responseObject) {
|
|
2
5
|
return {
|
|
3
6
|
serviceProvider: responseObject.serviceProvider,
|
|
4
7
|
apiKey: responseObject.instanceDetails.apiKey,
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAlertPresent = void 0;
|
|
4
|
+
const isAlertPresent = async (driver, timeout = 0) => {
|
|
2
5
|
try {
|
|
3
6
|
if (!driver)
|
|
4
7
|
return false;
|
|
@@ -9,3 +12,4 @@ export const isAlertPresent = async (driver, timeout = 0) => {
|
|
|
9
12
|
return false;
|
|
10
13
|
}
|
|
11
14
|
};
|
|
15
|
+
exports.isAlertPresent = isAlertPresent;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCapabilities = getCapabilities;
|
|
4
|
+
function getCapabilities(browserName) {
|
|
2
5
|
const isLinux = process.platform === 'linux';
|
|
3
6
|
const browserCapabilities = {
|
|
4
7
|
chrome: {
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPath = getPath;
|
|
4
|
+
function getPath(cloudConfig) {
|
|
2
5
|
return `/${cloudConfig.path}?accessKey=${cloudConfig.accessKey}&licenseId=${cloudConfig.licenseId}&projectName=${cloudConfig.projectName}/`;
|
|
3
6
|
}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.enterActionHelper = void 0;
|
|
7
|
+
exports.enterActionHelperMob = enterActionHelperMob;
|
|
8
|
+
const jsdom_1 = require("jsdom");
|
|
9
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
10
|
+
const xpathcreation_js_1 = require("./xpathcreation.js");
|
|
11
|
+
const logData_js_1 = require("../logger/logData.js");
|
|
12
|
+
const xpath_1 = __importDefault(require("xpath"));
|
|
13
|
+
const enterActionHelper = (pageDOM, ffNumber) => {
|
|
7
14
|
// Extract numeric part
|
|
8
15
|
const match = ffNumber.match(/\d+$/);
|
|
9
16
|
let numericFF = match ? parseInt(match[0], 10) : 0;
|
|
10
|
-
const parser = new JSDOM(pageDOM);
|
|
17
|
+
const parser = new jsdom_1.JSDOM(pageDOM);
|
|
11
18
|
const doc = parser.window.document;
|
|
12
19
|
const isEditable = (el) => {
|
|
13
20
|
if (!el)
|
|
@@ -63,14 +70,15 @@ export const enterActionHelper = (pageDOM, ffNumber) => {
|
|
|
63
70
|
xpathPath
|
|
64
71
|
};
|
|
65
72
|
};
|
|
66
|
-
|
|
73
|
+
exports.enterActionHelper = enterActionHelper;
|
|
74
|
+
function enterActionHelperMob(annotatedDom, num) {
|
|
67
75
|
try {
|
|
68
|
-
const parser = new DOMParser();
|
|
76
|
+
const parser = new xmldom_1.DOMParser();
|
|
69
77
|
const match = num.match(/\d+$/);
|
|
70
78
|
const numericFF = match ? parseInt(match[0], 10) : 0;
|
|
71
79
|
const xmlDoc = parser.parseFromString(annotatedDom, "text/xml");
|
|
72
80
|
const xpathQuery = `//*[@FF-inspecter='${num}']`;
|
|
73
|
-
const nodes =
|
|
81
|
+
const nodes = xpath_1.default.select(xpathQuery, xmlDoc);
|
|
74
82
|
const element = nodes.length ? nodes[0] : null;
|
|
75
83
|
let xpathPath = "";
|
|
76
84
|
const getElementChildren = (node) => {
|
|
@@ -80,7 +88,7 @@ export function enterActionHelperMob(annotatedDom, num) {
|
|
|
80
88
|
const elementClass = (element.getAttribute("class") || "").toLowerCase();
|
|
81
89
|
if (elementClass.includes("edittext") ||
|
|
82
90
|
elementClass.includes("autocompletetextview")) {
|
|
83
|
-
const result = getFFIndexAndXPath(annotatedDom, num);
|
|
91
|
+
const result = (0, xpathcreation_js_1.getFFIndexAndXPath)(annotatedDom, num);
|
|
84
92
|
xpathPath = result.xpathPath;
|
|
85
93
|
}
|
|
86
94
|
else {
|
|
@@ -97,25 +105,25 @@ export function enterActionHelperMob(annotatedDom, num) {
|
|
|
97
105
|
if (editableChild) {
|
|
98
106
|
const childNum = editableChild.getAttribute("FF-inspecter")?.split("-").pop();
|
|
99
107
|
if (childNum) {
|
|
100
|
-
const result = getFFIndexAndXPath(annotatedDom, `Fire-Flink-${childNum}`);
|
|
108
|
+
const result = (0, xpathcreation_js_1.getFFIndexAndXPath)(annotatedDom, `Fire-Flink-${childNum}`);
|
|
101
109
|
xpathPath = result.xpathPath;
|
|
102
110
|
}
|
|
103
111
|
}
|
|
104
112
|
else {
|
|
105
|
-
const result = getFFIndexAndXPath(annotatedDom, num);
|
|
113
|
+
const result = (0, xpathcreation_js_1.getFFIndexAndXPath)(annotatedDom, num);
|
|
106
114
|
xpathPath = result.xpathPath;
|
|
107
115
|
}
|
|
108
116
|
}
|
|
109
117
|
}
|
|
110
118
|
else {
|
|
111
|
-
logger.info(`No element found for ffNumber: ${numericFF} in MOB_Enter action`);
|
|
119
|
+
logData_js_1.logger.info(`No element found for ffNumber: ${numericFF} in MOB_Enter action`);
|
|
112
120
|
}
|
|
113
121
|
return {
|
|
114
122
|
xpathPath
|
|
115
123
|
};
|
|
116
124
|
}
|
|
117
125
|
catch (error) {
|
|
118
|
-
logger.error(`Error in enterActionHelperMob: ${error}`);
|
|
126
|
+
logData_js_1.logger.error(`Error in enterActionHelperMob: ${error}`);
|
|
119
127
|
throw error;
|
|
120
128
|
}
|
|
121
129
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatImageBase64 = formatImageBase64;
|
|
1
4
|
/**
|
|
2
5
|
* Ensures that a base64 string or Buffer has the correct data URI prefix for PNG images.
|
|
3
6
|
* @param image The base64 string or Buffer.
|
|
4
7
|
* @returns The base64 string with the `data:image/png;base64,` prefix.
|
|
5
8
|
*/
|
|
6
|
-
|
|
9
|
+
function formatImageBase64(image) {
|
|
7
10
|
if (!image)
|
|
8
11
|
return "";
|
|
9
12
|
const base64 = Buffer.isBuffer(image) ? image.toString("base64") : image;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sameActionHelper = void 0;
|
|
4
|
+
exports.sameActionHelper = {
|
|
2
5
|
MOB_Tap: "Click",
|
|
3
6
|
MOB_Enter: "SendKeys",
|
|
4
7
|
MOB_VerifyElementIsDisplayed: "VerifyElementIsDisplayed",
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getFFIndexAndXPath = getFFIndexAndXPath;
|
|
7
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
8
|
+
const xpath_1 = __importDefault(require("xpath"));
|
|
9
|
+
function getFFIndexAndXPath(annotatedDom, fireflinkIndex) {
|
|
4
10
|
try {
|
|
5
|
-
const parser = new DOMParser();
|
|
11
|
+
const parser = new xmldom_1.DOMParser();
|
|
6
12
|
const xmlDoc = parser.parseFromString(annotatedDom, "text/xml");
|
|
7
13
|
let xpathQuery = "";
|
|
8
14
|
let isBounds = false;
|
|
@@ -14,7 +20,7 @@ export function getFFIndexAndXPath(annotatedDom, fireflinkIndex) {
|
|
|
14
20
|
else {
|
|
15
21
|
xpathQuery = `//*[@FF-inspecter='${fireflinkIndex}']`;
|
|
16
22
|
}
|
|
17
|
-
const nodes =
|
|
23
|
+
const nodes = xpath_1.default.select(xpathQuery, xmlDoc);
|
|
18
24
|
const element = nodes.length ? nodes[0] : null;
|
|
19
25
|
if (!element) {
|
|
20
26
|
return { xpathPath: "" };
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findElementUsingFF = void 0;
|
|
4
|
+
const switchToIframeByMeta_js_1 = require("./switchToIframeByMeta.js");
|
|
5
|
+
const findElementUsingFF = async (args) => {
|
|
3
6
|
await args.driver.switchToFrame(null);
|
|
4
7
|
const usedElementNames = [];
|
|
5
8
|
for (const frameMeta of args.frames) {
|
|
6
|
-
const xpathUsed = await switchToIframeByMeta(args.driver, frameMeta);
|
|
9
|
+
const xpathUsed = await (0, switchToIframeByMeta_js_1.switchToIframeByMeta)(args.driver, frameMeta);
|
|
7
10
|
if (xpathUsed) {
|
|
8
11
|
let finalElementName = args.elementName;
|
|
9
12
|
if (finalElementName) {
|
|
@@ -30,3 +33,4 @@ export const findElementUsingFF = async (args) => {
|
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
};
|
|
36
|
+
exports.findElementUsingFF = findElementUsingFF;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.switchToIframeByMeta = switchToIframeByMeta;
|
|
4
|
+
async function switchToIframeByMeta(driver, frameMeta) {
|
|
2
5
|
const selectors = [
|
|
3
6
|
frameMeta.id && `//*[@id='${frameMeta.id}']`,
|
|
4
7
|
frameMeta.name && `//*[@name='${frameMeta.name}']`,
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Find_element_by_ff_js_script = void 0;
|
|
4
|
+
exports.Find_element_by_ff_js_script = `
|
|
2
5
|
const target = arguments[0];
|
|
3
6
|
const callback = arguments[arguments.length - 1];
|
|
4
7
|
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SHADOW_DOM_VERIFY_PARTIAL_TEXT_JS = exports.SHADOW_DOM_VERIFY_TEXT_JS = exports.SHADOW_DOM_GET_TEXT_JS = exports.SHADOW_DOM_UPLOAD_JS = exports.SHADOW_DOM_ENTER_JS = exports.SHADOW_DOM_CLICK_JS = void 0;
|
|
4
|
+
exports.SHADOW_DOM_CLICK_JS = `
|
|
2
5
|
const path = arguments[0];
|
|
3
6
|
|
|
4
7
|
function resolve(path) {
|
|
@@ -33,7 +36,7 @@ if (targetNode) {
|
|
|
33
36
|
}
|
|
34
37
|
return false;
|
|
35
38
|
`;
|
|
36
|
-
|
|
39
|
+
exports.SHADOW_DOM_ENTER_JS = `
|
|
37
40
|
const path = arguments[0];
|
|
38
41
|
const value = arguments[1];
|
|
39
42
|
|
|
@@ -73,7 +76,7 @@ if (el) {
|
|
|
73
76
|
}
|
|
74
77
|
return false;
|
|
75
78
|
`;
|
|
76
|
-
|
|
79
|
+
exports.SHADOW_DOM_UPLOAD_JS = `
|
|
77
80
|
const path = arguments[0];
|
|
78
81
|
|
|
79
82
|
function resolve(path) {
|
|
@@ -103,7 +106,7 @@ function resolve(path) {
|
|
|
103
106
|
|
|
104
107
|
return resolve(path);
|
|
105
108
|
`;
|
|
106
|
-
|
|
109
|
+
exports.SHADOW_DOM_GET_TEXT_JS = `
|
|
107
110
|
const path = arguments[0];
|
|
108
111
|
|
|
109
112
|
function resolve(path) {
|
|
@@ -136,7 +139,7 @@ function resolve(path) {
|
|
|
136
139
|
const el = resolve(path);
|
|
137
140
|
return el ? el.innerText.trim() : null;
|
|
138
141
|
`;
|
|
139
|
-
|
|
142
|
+
exports.SHADOW_DOM_VERIFY_TEXT_JS = `
|
|
140
143
|
const path = arguments[0];
|
|
141
144
|
const text = arguments[1];
|
|
142
145
|
|
|
@@ -170,7 +173,7 @@ function resolve(path) {
|
|
|
170
173
|
const el = resolve(path);
|
|
171
174
|
return el ? el.innerText.trim() === text : false;
|
|
172
175
|
`;
|
|
173
|
-
|
|
176
|
+
exports.SHADOW_DOM_VERIFY_PARTIAL_TEXT_JS = `
|
|
174
177
|
const path = arguments[0];
|
|
175
178
|
const expected = arguments[1];
|
|
176
179
|
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JS_SECONDARY = exports.JS_PRIMARY = void 0;
|
|
4
|
+
exports.JS_PRIMARY = `return (function() {
|
|
2
5
|
|
|
3
6
|
function isReallyVisible(n) {
|
|
4
7
|
const r = n.getBoundingClientRect();
|
|
@@ -71,7 +74,7 @@ export const JS_PRIMARY = `return (function() {
|
|
|
71
74
|
return out;
|
|
72
75
|
})();
|
|
73
76
|
`;
|
|
74
|
-
|
|
77
|
+
exports.JS_SECONDARY = `return (function() {
|
|
75
78
|
|
|
76
79
|
function isReallyVisible(n) {
|
|
77
80
|
const r = n.getBoundingClientRect();
|
|
@@ -1,24 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logger = void 0;
|
|
7
|
+
exports.initLogger = initLogger;
|
|
8
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const js_beautify_1 = __importDefault(require("js-beautify"));
|
|
4
11
|
let sessionPath;
|
|
5
12
|
let logsDir;
|
|
6
13
|
let domDir;
|
|
7
14
|
let screenshotsDir;
|
|
8
15
|
let logFilePath;
|
|
9
|
-
|
|
16
|
+
function initLogger(basePath) {
|
|
10
17
|
sessionPath = basePath;
|
|
11
|
-
logsDir =
|
|
12
|
-
domDir =
|
|
13
|
-
screenshotsDir =
|
|
14
|
-
logFilePath =
|
|
18
|
+
logsDir = path_1.default.resolve(sessionPath, "logs");
|
|
19
|
+
domDir = path_1.default.resolve(sessionPath, "dom");
|
|
20
|
+
screenshotsDir = path_1.default.resolve(sessionPath, "screenshots");
|
|
21
|
+
logFilePath = path_1.default.join(logsDir, "ai-execution-logs.txt");
|
|
15
22
|
}
|
|
16
23
|
async function ensureDirs() {
|
|
17
24
|
if (!logsDir)
|
|
18
25
|
throw new Error("Logger not initialized");
|
|
19
|
-
await
|
|
20
|
-
await
|
|
21
|
-
await
|
|
26
|
+
await promises_1.default.mkdir(logsDir, { recursive: true });
|
|
27
|
+
await promises_1.default.mkdir(domDir, { recursive: true });
|
|
28
|
+
await promises_1.default.mkdir(screenshotsDir, { recursive: true });
|
|
22
29
|
}
|
|
23
30
|
function getISTDate() {
|
|
24
31
|
return new Intl.DateTimeFormat("sv-SE", {
|
|
@@ -35,14 +42,14 @@ function getISTDate() {
|
|
|
35
42
|
.format(new Date())
|
|
36
43
|
.replace(" ", "T");
|
|
37
44
|
}
|
|
38
|
-
|
|
45
|
+
exports.logger = {
|
|
39
46
|
info: async (...args) => {
|
|
40
47
|
if (!logFilePath)
|
|
41
48
|
throw new Error("Logger not initialized");
|
|
42
49
|
await ensureDirs();
|
|
43
50
|
const formattedArgs = args.map((arg) => typeof arg === "object" ? JSON.stringify(arg, null, 2) : arg);
|
|
44
51
|
const message = `[INFO] ${getISTDate()}+05:30 - ${formattedArgs.join(" ")}\n`;
|
|
45
|
-
await
|
|
52
|
+
await promises_1.default.appendFile(logFilePath, message, "utf-8");
|
|
46
53
|
},
|
|
47
54
|
error: async (...args) => {
|
|
48
55
|
if (!logFilePath)
|
|
@@ -65,7 +72,7 @@ export const logger = {
|
|
|
65
72
|
return String(arg);
|
|
66
73
|
});
|
|
67
74
|
const message = `[ERROR] ${new Date().toISOString()} - ${formatted.join(" ")}\n`;
|
|
68
|
-
await
|
|
75
|
+
await promises_1.default.appendFile(logFilePath, message, "utf-8");
|
|
69
76
|
},
|
|
70
77
|
getError: (...args) => {
|
|
71
78
|
const formatted = args.map((arg) => {
|
|
@@ -99,14 +106,14 @@ export const logger = {
|
|
|
99
106
|
}
|
|
100
107
|
else {
|
|
101
108
|
finalFileName = fileName ? `${fileName}.html` : `dom-${timestamp}.html`;
|
|
102
|
-
formattedContent =
|
|
109
|
+
formattedContent = js_beautify_1.default.html(domContent, {
|
|
103
110
|
indent_size: 2,
|
|
104
111
|
preserve_newlines: false,
|
|
105
112
|
wrap_line_length: 120,
|
|
106
113
|
});
|
|
107
114
|
}
|
|
108
|
-
const filePath =
|
|
109
|
-
await
|
|
115
|
+
const filePath = path_1.default.join(domDir, finalFileName);
|
|
116
|
+
await promises_1.default.writeFile(filePath, formattedContent, "utf-8");
|
|
110
117
|
},
|
|
111
118
|
saveJSON: async (data, fileName) => {
|
|
112
119
|
if (!domDir)
|
|
@@ -116,19 +123,19 @@ export const logger = {
|
|
|
116
123
|
const finalFileName = fileName
|
|
117
124
|
? `${fileName}.json`
|
|
118
125
|
: `data-${timestamp}.json`;
|
|
119
|
-
const filePath =
|
|
126
|
+
const filePath = path_1.default.join(domDir, finalFileName);
|
|
120
127
|
const safeData = JSON.stringify(data, (key, value) => {
|
|
121
128
|
if (key === "element")
|
|
122
129
|
return undefined;
|
|
123
130
|
return value;
|
|
124
131
|
}, 2);
|
|
125
|
-
await
|
|
132
|
+
await promises_1.default.writeFile(filePath, safeData, "utf-8");
|
|
126
133
|
},
|
|
127
134
|
saveImage: async (imageBuffer, fileName) => {
|
|
128
135
|
if (!screenshotsDir)
|
|
129
136
|
throw new Error("Logger not initialized");
|
|
130
137
|
await ensureDirs();
|
|
131
|
-
const filePath =
|
|
132
|
-
await
|
|
138
|
+
const filePath = path_1.default.join(screenshotsDir, fileName);
|
|
139
|
+
await promises_1.default.writeFile(filePath, imageBuffer);
|
|
133
140
|
},
|
|
134
141
|
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.newTabTracker = newTabTracker;
|
|
4
|
+
async function newTabTracker(driver, stepAction, previousHandles, scriptAppender) {
|
|
2
5
|
if (stepAction === "switch")
|
|
3
6
|
return;
|
|
4
7
|
const currentHandle = await driver.getWindowHandle();
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findElementInDom = findElementInDom;
|
|
4
|
+
const jsForAttributeInjection_js_1 = require("../DomExtraction/jsForAttributeInjection.js");
|
|
5
|
+
const simplifyAndFlatten_js_1 = require("../../domAnalysis/simplifyAndFlatten.js");
|
|
6
|
+
const xpathcreation_js_1 = require("../helpers/xpathcreation.js");
|
|
7
|
+
async function findElementInDom(driver, text) {
|
|
8
|
+
const simplifier = new simplifyAndFlatten_js_1.DomSimplifier();
|
|
6
9
|
const keywords = text
|
|
7
10
|
.toLowerCase()
|
|
8
11
|
.split(/\s+/)
|
|
9
12
|
.filter(Boolean);
|
|
10
|
-
const { dom: annotatedDom } = await getAnnotatedDOMForMobile(driver);
|
|
13
|
+
const { dom: annotatedDom } = await (0, jsForAttributeInjection_js_1.getAnnotatedDOMForMobile)(driver);
|
|
11
14
|
const { flatNodes } = simplifier.simplifyMobile(annotatedDom);
|
|
12
15
|
const sequenceMatch = (value, words) => {
|
|
13
16
|
const v = value.toLowerCase();
|
|
@@ -25,7 +28,7 @@ export async function findElementInDom(driver, text) {
|
|
|
25
28
|
const ffIndex = node["FF-inspecter"];
|
|
26
29
|
if (!ffIndex)
|
|
27
30
|
continue;
|
|
28
|
-
const xpath = getFFIndexAndXPath(annotatedDom, ffIndex);
|
|
31
|
+
const xpath = (0, xpathcreation_js_1.getFFIndexAndXPath)(annotatedDom, ffIndex);
|
|
29
32
|
if (!xpath)
|
|
30
33
|
continue;
|
|
31
34
|
const element = await driver.$(xpath.xpathPath);
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeSwipeMovement = executeSwipeMovement;
|
|
4
|
+
async function executeSwipeMovement(driver, direction) {
|
|
2
5
|
if (direction === 'left' || direction === 'right') {
|
|
3
6
|
const horizontalContainers = [
|
|
4
7
|
'//android.widget.HorizontalScrollView',
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ff-automationv2",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.24",
|
|
4
4
|
"private": false,
|
|
5
|
-
"type": "
|
|
5
|
+
"type": "commonjs",
|
|
6
6
|
"description": "This lib is used to automate the manual testcase",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"jiti": "2.6.1",
|
|
49
49
|
"nodemon": "3.1.11",
|
|
50
50
|
"ts-node": "10.9.2",
|
|
51
|
+
"tsx": "^4.21.0",
|
|
51
52
|
"typescript": "^5.9.3",
|
|
52
53
|
"typescript-eslint": "8.56.0",
|
|
53
54
|
"webdriverio": "9.26.1"
|
|
@@ -61,11 +62,11 @@
|
|
|
61
62
|
"cheerio": "1.2.0",
|
|
62
63
|
"fast-fuzzy": "^1.12.0",
|
|
63
64
|
"js-beautify": "1.15.1",
|
|
65
|
+
"jsdom": "27.4.0",
|
|
66
|
+
"kafkajs": "^2.2.4",
|
|
64
67
|
"openai": "6.18.0",
|
|
65
68
|
"uuid": "13.0.0",
|
|
66
|
-
"xpath": "^0.0.34",
|
|
67
69
|
"webdriverio": "9.26.1",
|
|
68
|
-
"
|
|
69
|
-
"jsdom": "27.4.0"
|
|
70
|
+
"xpath": "^0.0.34"
|
|
70
71
|
}
|
|
71
72
|
}
|