/# Comment: Set the "FolderPathWithLists variable (line 2) to the directory path that will contain the excel list files. Don't include a \\ at the end. It should look like the below example when entering. Don't put quotes around it, they will be added automatically. C:\\Whatever\\Folder #/ SET FolderPathWithLists TO $'''C:\\Change\\This\\Path\\Lists''' WebAutomation.LaunchChrome.LaunchChrome Url: $'''https://apps.microsoft.com/store/search?publisher=Microsoft Corporation''' WindowState: WebAutomation.BrowserWindowState.Minimized ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser # Comment: Make sure Power Automate browser extension is installed LABEL ExpandResults LOOP LoopIndex FROM 1 TO 20 STEP 1 WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() { document.querySelectorAll(\"#main > div > div > div > div > div > div.c01105.c013.c0126 > div > button\")[0].click(); }''' Result=> Result WAIT 0.2 END IF (WebAutomation.IfWebPageContains.WebPageContainsText BrowserInstance: Browser Text: $'''Show More Results''') THEN GOTO ExpandResults END DISABLE WebAutomation.LaunchChrome.AttachToChromeByTitle TabTitle: $'''Microsoft Apps - Microsoft Corporation''' AttachTimeout: 5 BrowserInstance=> Browser WebAutomation.ExtractData.ExtractList BrowserInstance: Browser Control: $'''html > body > div:eq(0) > div:eq(2) > div > div > div > div > div > div:eq(1) > div > div:eq(1) > div:eq(1) > div''' ExtractionParameters: {[$'''div:eq(0) > a > div > button''', $'''Own Text''', $''''''] } PostProcessData: False TimeoutInSeconds: 60 ExtractedData=> DataFromWebPage Text.Trim Text: DataFromWebPage TrimOption: Text.TrimOption.ToEnd TrimmedText=> TrimmedText Text.SplitText.Split Text: TrimmedText StandardDelimiter: Text.StandardDelimiter.NewLine DelimiterTimes: 1 Result=> LatestAppList Variables.SortList.SortList List: LatestAppList Clipboard.SetText Text: LatestAppList Excel.LaunchExcel.Launch Visible: False LoadAddInsAndMacros: True Instance=> ExcelInstance Excel.PasteCellsToExcel.Paste Instance: ExcelInstance DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateOnly CurrentDateTime=> CurrentDate Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDate CustomFormat: $'''MM-dd-yyyy''' Result=> CurrentDate Folder.GetFiles Folder: FolderPathWithLists FileFilter: $'''*.xlsx''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.CreationTime SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files Excel.SaveExcel.SaveAs Instance: ExcelInstance DocumentFormat: Excel.ExcelFormat.OpenXmlWorkbook DocumentPath: $'''%FolderPathWithLists%\\%CurrentDate%.xlsx''' Excel.CloseExcel.Close Instance: ExcelInstance # Comment: Checks if there weren't any lists found by checking if Files variable is empty IF IsEmpty(Files) THEN Display.ShowMessageDialog.ShowMessage Title: $'''No Previous List Found''' Message: $'''No previous list file found. Is this the first time running this? Press OK to stop flow.''' Icon: Display.Icon.Warning Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed EXIT Code: 0 ErrorMessage: $'''No previous list file found. Is this the first time running this?''' END # Comment: Selects the first file in the retrieved list by selecting index 0 of 'Files' variable SET SelectedFile TO Files[0] # Comment: Extracting date from file name Text.CropText.CropTextBetweenFlags Text: SelectedFile FromFlag: $'''%FolderPathWithLists%\\''' ToFlag: $'''.xlsx''' IgnoreCase: False CroppedText=> OldListDate Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: SelectedFile Visible: False ReadOnly: False Instance=> ExcelInstanceOldFile Excel.CopyCellsFromExcel.CopyCells Instance: ExcelInstanceOldFile StartColumn: $'''A''' StartRow: 1 EndColumn: $'''A''' EndRow: 2000 Excel.CloseExcel.Close Instance: ExcelInstanceOldFile Clipboard.GetText Text=> OldListRaw Text.SplitText.Split Text: OldListRaw StandardDelimiter: Text.StandardDelimiter.NewLine DelimiterTimes: 1 Result=> OldAppList Variables.SubtractLists FirstList: LatestAppList SecondList: OldAppList OutputList=> ListDifference IF IsNotEmpty(ListDifference) THEN File.WriteText File: $'''%FolderPathWithLists%\\NewList.txt''' TextToWrite: $'''------ %OldListDate% to %CurrentDate% ------ %ListDifference% ''' AppendNewLine: True IfFileExists: File.IfFileExists.Append Encoding: File.FileEncoding.UTF8 Display.ShowMessageDialog.ShowMessage Title: $'''New Apps Found''' Message: ListDifference Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False END