cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
maxpower45255
Advocate III
Advocate III

Executing JQuery in Power Automate Desktop

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? 🙂 

 

8 REPLIES 8
beebul
Advocate III
Advocate III

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 🤣

@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
Regular Visitor

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
Impactful Individual
Impactful Individual

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")}

@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('"', '');
}

 

@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
Super User
Super User

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).

@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.   

Helpful resources

Announcements

Back to Basics: Tuesday Tip #2: All About Community Ranks

This weekly series is our way of helping the amazing members of our community--both new members and seasoned veterans--learn and grow in how to best engage in the community! Each Tuesday, we will feature new areas of content that will help you best understand the community--from ranking and badges to profile avatars, from Super Users to blogging in the community. Our hope is that this information will help each of our community members grow in their experience with Power Platform, with the community, and with each other!   Have you ever wondered how your fellow community members earn the different ranks available? What is the difference between an Advocate and a Helper, a Solution Sage and a Community Champion? In today's #TuesdayTip, we share the secrets and tips to help YOU keep your ranking growing--and why it's so important to our communities. What are community ranks? - Power Platform Community (microsoft.com)   Get the details in this Knowledge Base article that shows you what ranks are, how they are achieved, and what they mean to you as you engage with other community members on a regular basis. Once you start your journey in the community, ranking up, you'll find the benefits. So get busy with those kudos, solutions, and more! We can't wait to see how you rank!That's it for this week. Tune in for more Tuesday Tips next Tuesday and join the community as we continue to get "Back to Basics."

It's #MPPC23 Week! Check Out the Community Sessions and Events Happening in Vegas

After all the planning and preparing, the annual Microsoft Power Platform Conference is finally here! We are excited to see so many of our community in Las Vegas this week. To help make sure you don't miss any of the workshops, sessions, and events we have planned, make sure to check out this handy Community One-Sheet, and download the pdf today! Make sure to stop by the Community Lounge to meet @hugobernier, @EricArcher, @heaher_italent, and @AshleyFelts from our team!    

Join Us for the First-Ever Biz Apps Community User Group Meeting: Live from MPPC23

      Join us for the first-ever the Biz Apps Community User Group meeting live from the Power Platform Conference! This one hour user group meeting is all about discovering the value and benefits of User Groups! Discover how you can find a group in your local area or about specific topics where you can learn new skills and meet like-minded people as a user group member.   Hear from User Group leaders about why they do what they do and what resources they receive to help them succeed as community ambassadors. If you have never attended a User Group meeting before, this will be a great introduction! We hope you are inspired to find a group that meets your unique interests!   October 5th at 2:15 pm Pacific time   If you're attending #MPPC23 in Las Vegas, join us in person! Find out more here: https://powerplatformconf.com/#!/session/Biz%20Apps%20Community%20User%20Group%20Meeting%20-%20Live%20from%20MPPC/6172   Not at MPPC23? Attend vvirtually by registering here: https://aka.ms/MPPCusergroupmeeting2023    If you can't attend this meeting live, don't worry! We will record this meeting and share it with the Community at powerusers.microsoft.com 

Back to Basics: Tuesday Tip #1: All About YOUR Community Account

We are excited to kick off our new #TuesdayTIps series, "Back to Basics." This weekly series is our way of helping the amazing members of our community--both new members and seasoned veterans--learn and grow in how to best engage in the community! Each Tuesday, we will feature new areas of content that will help you best understand the community--from ranking and badges to profile avatars, from Super Users to blogging in the community. Our hope is that this information will help each of our community members grow in their experience with Power Platform, with the community, and with each other!     This Week's Tips: Account Support: Changing Passwords, Changing Email Addresses or Usernames, "Need Admin Approval," Etc.Wondering how to get support for your community account? Check out the details on these common questions and more. Just follow the link below for articles that explain it all.Community Account Support - Power Platform Community (microsoft.com)   All About GDPR: How It Affects Closing Your Community Account (And Why You Should Think Twice Before You Do)GDPR, the General Data Protection Regulation (GDPR), took effect May 25th 2018. A European privacy law, GDPR imposes new rules on companies and other organizations offering goods and services to people in the European Union (EU), or that collect and analyze data tied to EU residents. GDPR applies no matter where you are located, and it affects what happens when you decide to close your account. Read the details here:All About GDPR - Power Platform Community (microsoft.com)   Getting to Know You: Setting Up Your Community Profile, Customizing Your Profile, and More.Your community profile helps other members of the community get to know you as you begin to engage and interact. Your profile is a mirror of your activity in the community. Find out how to set it up, change your avatar, adjust your time zone, and more. Click on the link below to find out how:Community Profile, Time Zone, Picture (Avatar) & D... - Power Platform Community (microsoft.com)   That's it for this week. Tune in for more Tuesday Tips next Tuesday and join the community as we get "Back to Basics."

Announcing the MPPC's Got Power Talent Show at #MPPC23

Are you attending the Microsoft Power Platform Conference 2023 in Las Vegas? If so, we invite you to join us for the MPPC's Got Power Talent Show!      Our talent show is more than a show—it's a grand celebration of connection, inspiration, and shared journeys. Through stories, skills, and collective experiences, we come together to uplift, inspire, and revel in the magic of our community's diverse talents. This year, our talent event promises to be an unforgettable experience, echoing louder and brighter than anything you've seen before.    We're casting a wider net with three captivating categories:  Demo Technical Solutions: Show us your Power Platform innovations, be it apps, flows, chatbots, websites or dashboards... Storytelling: Share tales of your journey with Power Platform. Hidden Talents: Unveil your creative side—be it dancing, singing, rapping, poetry, or comedy. Let your talent shine!    Got That Special Spark? A Story That Demands to Be Heard? Your moment is now!  Sign up to Showcase Your Brilliance: https://aka.ms/MPPCGotPowerSignUp  Deadline for submissions: Thursday, Sept 28th    How It Works:  Submit this form to sign up: https://aka.ms/MPPCGotPowerSignUp  We'll contact you if you're selected. Get ready to be onstage!  The Spotlight is Yours: Each participant has 3-5 minutes to shine, with insightful commentary from our panel of judges. We’re not just giving you a stage; we’re handing you the platform to make your mark.     Be the Story We Tell: Your talents and narratives will not just entertain but inspire, serving as the bedrock for our community’s future stories and successes.    Celebration, Surprises, and Connections: As the curtain falls, the excitement continues! Await surprise awards and seize the chance to mingle with industry experts, Microsoft Power Platform leaders, and community luminaries. It's not just a show; it's an opportunity to forge connections and celebrate shared successes.    Event Details:  Date and Time: Wed Oct 4th, 6:30-9:00PM   Location: MPPC23 at the MGM Grand, Las Vegas, NV, USA  

September User Group Success Story: Reading Dynamics 365 & Power Platform User Group

The Reading Dynamics 365 and Power Platform User Group is a community-driven initiative that started in September 2022. It has quickly earned recognition for its enthusiastic leadership and resilience in the face of challenges. With a focus on promoting learning and networking among professionals in the Dynamics 365 and Power Platform ecosystem, the group has grown steadily and gained a reputation for its commitment to its members!   The group, which had its inaugural event in January 2023 at the Microsoft UK Headquarters in Reading, has since organized three successful gatherings, including a recent social lunch. They maintain a regular schedule of four events per year, each attended by an average of 20-25 enthusiastic participants who enjoy engaging talks and, of course, pizza.   The Reading User Group's presence is primarily spread through LinkedIn and Meetup, with the support of the wider community. This thriving community is managed by a dedicated team consisting of Fraser Dear, Tim Leung, and Andrew Bibby, who serves as the main point of contact for the UK Dynamics 365 and Power Platform User Groups.   Andrew Bibby, an active figure in the Dynamics 365 and Power Platform community, nominated this group due to his admiration for the Reading UK User Group's efforts. He emphasized their remarkable enthusiasm and success in running the group, noting that they navigated challenges such as finding venues with resilience and smiles on their faces. Despite being a relatively new group with 20-30 members, they have managed to achieve high attendance at their meetings.   The group's journey began when Fraser Dear moved to the Reading area and realized the absence of a user group catering to professionals in the Dynamics 365 and Power Platform space. He reached out to Andrew, who provided valuable guidance and support, allowing the Reading User Group to officially join the UK Dynamics 365 and Power Platform User Groups community.   One of the group's notable achievements was overcoming the challenge of finding a suitable venue. Initially, their "home" was the Microsoft UK HQ in Reading. However, due to office closures, they had to seek a new location with limited time. Fortunately, a connection with Stephanie Stacey from Microsoft led them to Reading College and its Institute of Technology. The college generously offered them event space and support, forging a mutually beneficial partnership where the group promotes the Institute and encourages its members to support the next generation of IT professionals.   With the dedication of its leadership team, the Reading Dynamics 365 and Power Platform User Group is poised to continue growing and thriving! Their story exemplifies the power of community-driven initiatives and the positive impact they can have on professional development and networking in the tech industry. As they move forward with their upcoming events and collaborations with Reading College, the group is likely to remain a valuable resource for professionals in the Reading area and beyond.  

Top Solution Authors
Top Kudoed Authors
Users online (2,258)