web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Executing JQuery in Po...
Power Automate
Unanswered

Executing JQuery in Power Automate Desktop

(1) ShareShare
ReportReport
Posted on by 223

I'm trying to execute Jquery in a "run javascript function on a webpage" action in power automate desktop, but it doesn't work.

The same function returns the below output in the dev console but returns nothing in PAD.  

 

function ExecuteScript() {
    const rows = [];
    $('tr[_awtisprimaryrow="1"][bgcolor]').each(function(index) {
        var item = $(this).find("input.w-txt").map(function(idx, dom) {
        var res = this.id + '~' + $(this).val();
        return res;
    }).get().join('|');
    rows.push(item);
});
//console.log( rows);
 return JSON.stringify(rows);    
}
ExecuteScript(); //RETURNS THIS OUTPUT STRING BELOW: 

 

'["_iq49kd~10340123|_umkbl~|_tesw_~5|_qj1yrd~$75.50 USD","_f6oowb~10040123|_520ofc~|_6ucdec~1|_9zlnrb~$47.70 USD","_sknbz~10040123|_0g792d~|_3knwtd~1|_wdqu4~$94.06 USD","_wdyefd~10090123|_wpe4w~|_vty1r~3|_skvr_d~$75.94 USD","_9zxt2c~10040123|_b$llzb~|_yd9gcb~6|_f6aixc~$33.33 USD"]'

Any thoughts? 

 

I'm also disappointed that the documentation of Power Automate Desktop doesn't include examples of how to use the actions. I've always liked MSFT products because of their extensive documentation, along with examples. But not in this case. MSFT, are you listening? 🙂 

 

I have the same question (0)
  • beebul Profile Picture
    259 on at

    Same for me - I don't even think it works to be honest!

     

    I bet you just get an [Object][Object] returned??

     

    STARTING TO LOSE THE FAITH MICROSOFT, YA HEAR 🤣

  • maxpower45255 Profile Picture
    223 on at

    @beebul In my case I'm returning a string. Even this simple test javascript function returns blank (and it take quite long for the action to complete - ~10-15secs). 

     

    function ExecuteScript() {return "This is a test";}

    I update my version of Power Automate Desktop to the latest version but to no avail. 

    Hopefully Microsoft is monitoring these threads and will respond. Better yet, I hope they fix the product. 

    Cheers!

  • pkn3081 Profile Picture
    8 on at

    Same issue - It almost behaves like the "Run Javascript on a Web Page" script doesn't quite write to the console.  I am designing an RPA solution for web automation on the Edge browser. 

     

    I am trying to click a button to advance pagination on a webpage in a loop (each time I open the page the data is different, and the pagination is different).  UI element automation captures it; but, doesn't execute it reliably.  The button is an arrow next to a text value for the page.  Since the pagination length is dynamic the page number changes.  I carved out the selector builder to make as generic as possible, and it still fails about 30% of the time.  I assume the UI element on screen doesn't match the store UI image. 

    So I thought I would try to hit with the PAD Browser option to "Run Javascript on a Web Page".  It runs slow on this step just like maxpower45255 describes.  ~10-15secs 

    Observations (it's not working!!)

    • In my browser window, I get "Microsoft Power Automate started debugging this broswer {cancel]"

    and

    • the default PAD variable Result returns [object Object]

    Code inside "Run Javascript on a Web Page" in PAD

     

     

     

    function ExecuteScript() { 
    var iframe = document.getElementbyId['content']; /*iframeResult*/
    var div = document.getElementsbyClass['pageDivFoot'];
    var clickbutton = iframe.div.contentWindow.document.querySelector('pagination a')click("href");
    }​

     

     

    or

     

     

    function ExecuteScript() { 
    var iframe = document.getElementbyId['content']; /*iframeResult*/
    var clickbutton = iframe.contentWindow.document.querySelector('pagination a')click("href");
    }

     

     

    Related:  stringing together related posts I have reviewed and tried.  The code works in the console, but does not work in PAD (and I am running the latest version of PAD):

     

  • Pavel_NaNoi Profile Picture
    1,074 on at

    Return needs brackets around what its returning, e.g. using Maxpowers' script and fixing it it should be something like: 

    function ExecuteScript() {return ("This is a test")}

  • maxpower45255 Profile Picture
    223 on at

    @pkn3081 You're hitting all the roadblocks I encountered. I was returning an array in my function and it was showing as "Object". The fix is to return a string. It's possible to parse the returned "Object" if you feed it to some action that takes that type of object as imput (possibly a datatable). But with the lack of documentation on many of these actions in power automate, you'd have to resort to trial and error and it's still not guaranteed you'd make it work. 

     

    I discovered that my issue is I was using Chrome instead of Edge (apparently the MSFT team skipped Chrome testing before rolling out this feature. LOL). Now my function is at least returning what I expect it. But the javascript action is oddly executing sometimes and not others. I noticed that I have to go into the developer tools to get the javascript action to execute the first time. After that it seems to return the expected result on subsequent executions. I don't think I can rely on this workaround in production for an enterprise solution. Anyone else know how to fix this intermittent javascript execution problem? 

     

    I haven't dealt with pagination yet. But it sounds like you need to work with dynamic selectors instead of looking for IDs or text that change. Here's a scenario I ran into that you might find helpful. 

    I had to loop through rows of data (product lines) where I needed to get access to all the input fields (textboxes and checkboxes) on each row. The input IDs are all dynamic. So I initially added one of the UI Elements using the "Add UI Element" method. Once the element is created, I renamed the element as "DynamicID input Text" and edited the selector to reference a variable such as: input[Id="%dynamicFieldID%"]

    (Note that your selector could be completely different. you can use  any css selector that would return your field. I'd suggest you first test your selector in the developer console until you get the correct result before moving on to add the UI element)

    Then in my flow, I have a for-each loop that loops through each row. I have one "Get Details of element on a webpage" action and I set its property to get "Own Text" and the UI element set to the "DynamicID input Text" element (see the screenshot).

    I hope you can glean some information to solve your problem. If you do, please post back your solution. 

    Good luck! 

    WE NEED POWER AUTOMATE TO BE ENTERPRISE GRADE BADLY! COME ON MICROSOFT!

     

    p.s. Here's my javascript function I used to find the text fields. hope someone finds it useful. 

     

    function ExecuteScript() {
        const data = [];
        var rows = document.querySelectorAll("tr[_awtisprimaryrow][bgcolor]");
        for (var i=0; i<rows.length; i++) {
            
            var elems = rows[i].getElementsByTagName("input");
            var line="";
            for (var j=0; j<elems.length; j++) {
                var singleElem = elems[j];
                  /*This is for debugging purposes*/

                   /*if (singleElem.id == "_iq49kd"){
                    singleElem.value = "1234567";
                } */
                if (j < elems.length - 1) {
                    line += singleElem.id + "~"  + singleElem.value + "|";         
                } else {
                    line += singleElem.id + "~"  + singleElem.value;             
                }            
            }
            if (line.length > 0){
                data.push(line);
            }
            line = "";
        }

        /* You can return anything you'd like here */
        /*return data; */    
        /*return "This is a test in Edge Browser"; */
        return data.toString().replace("[", "").replace("]", "").replace('"', '');
    }

     

    Dynamic selectors.PNG
  • pkn3081 Profile Picture
    8 on at

    @maxpower45255 Thanks for the feedback and suggestions.  We are on the same page with the problem solving approach 100%.  I am also working to make UI element snips execute more robustly by catching variables and using "%DynamicField% references in the Selector Builder.  I find the experience to be like carving a pumpkin with a plastic spoon.  I am building my loops in PAD, and then sending a loop of single write lines to the console, with some success.  I tried to send the loop to the console to execute in the console, but it isn't working on this site.  I am close to a minimal viable solution.  I'll let you know what I come up with.  

  • momlo Profile Picture
    1,527 Super User 2024 Season 1 on at

    Hey guys, what I have encountered is that executing JS on web page did not work until I added "click some element on the page" (focusing browser window or element did not do the trick).

     

    So before / not working:

     

    Action 1 - do something

    Action 2 - execute JS on webpage

    Action 3 - do something

     

    After / working 100%:

     

    Action 1 - do something

    Action 2 - click some element on the webpage, text, span whatever

    Action 3 - execute JS on webpage

    Action 4 - do something

     

    Also, I had one 3rd party page where script ws not working even in the browser console, script was not interacting with page, just doing some stuff faster in JS than PAD actions, so I had to open some simple internal page and execute JS on that page (using above "trick" with clicking).

  • maxpower45255 Profile Picture
    223 on at

    @momlo Thanks for the tip. I'm not sure which action you used to click the element. There are only 3 actions for clicking as attached in the screenshot. I tried the first one but it still didn't work. The second one expects a hyperlink. So I faked it by feeding it a text label on the page as I didn't want to click a link and move away from the page. That didn't work either.   

    power-automate-click-actions.PNG

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
David_MA Profile Picture

David_MA 262 Super User 2026 Season 1

#2
11manish Profile Picture

11manish 167

#3
Haque Profile Picture

Haque 154

Last 30 days Overall leaderboard