cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Tommy_Gunz
Frequent Visitor

Condition navigation based on one of the columns value in web

Hi,

 

I am new to PA, running desktop ver. 2.17.169.22042 and need little help please.

 

I got HTML table with 4 columns. Column 2 has a URL, standard HTML <a> tag which leads to another HTML page. Column 3 is the status column and holds 2 values, either “A” or “B”. On page load, I am trying to find a row that has status value “A” and when the flow find it, I want it to click the URL in column 2 in the corresponding row. So if table holds 5 rows, and only 3rd row holds the value of status “A”, and remaining rows are status “B”, like below:

 

col1 | col2 | col3 | col4
-----------------------------
xxxx |URL1|   B   | xxxx
xxxx |URL2|   B   | xxxx
xxxx |URL3|   A   | xxxx
xxxx |URL4|   B   | xxxx
xxxx |URL5|   B   | xxxx

I would like for the flow to find value “A” in row 3 and click "URL3", and if possible open that corresponding HTML page in a new tab of the same browser instance as if target=“_blank”.

 

Any help would be appreciated.

Thank you

Tom

1 ACCEPTED SOLUTION

Accepted Solutions
VJR
Super User
Super User

Hi @Tommy_Gunz 

 

It would be easier to do this after you get that HTML table into a Datatable inside of PAD (rather than doing it on the html table itself).

 

To do this, use "Extract data from web page" to capture the html table which would return the results in a datatable after running this action. (Additional action: Here you can play around with the selectors to capture the table only for the Status column having A. But if you are not able to set the right selector, then simply capture the entire table and proceed to next step below.)

 

Then loop through the datatable and using an IF condition check if the Status column is A.

If yes fetch the url within the same row, then use "go to web page" to navigate to that url.

 

View solution in original post

14 REPLIES 14
VJR
Super User
Super User

Hi @Tommy_Gunz 

 

It would be easier to do this after you get that HTML table into a Datatable inside of PAD (rather than doing it on the html table itself).

 

To do this, use "Extract data from web page" to capture the html table which would return the results in a datatable after running this action. (Additional action: Here you can play around with the selectors to capture the table only for the Status column having A. But if you are not able to set the right selector, then simply capture the entire table and proceed to next step below.)

 

Then loop through the datatable and using an IF condition check if the Status column is A.

If yes fetch the url within the same row, then use "go to web page" to navigate to that url.

 

Tommy_Gunz
Frequent Visitor

Hi VJR,

 

Thank you for responding. I like the idea to a data table. Finding "A" in the row I think I figured out but once I find it, how do I tell the flow to click the URL in the previous column in the corresponding row. Do I count <td> tags in <tr> and somehow programmatically say <td> -1 or something. How do I "If yes fetch the url within the same row, then use "go to web page".

 

Thank you

Tom

VJR
Super User
Super User

Hi @Tommy_Gunz 

 

Since you are getting the HTML table into a Datatable, there is no working with html tags like <tr> and <td>.

You will now be looping on the Datatable which is a type of variable in PAD.

 

After extracting the html table into a Datatable it would look like the below.

 

VJR_2-1647398860072.png

 

You use the For Each loop on the Datatable.

 

VJR_1-1647398817646.png

 

 

Instead of the "Display message", use the "Go to Web page" action with the above URL.

 

 

Tommy_Gunz
Frequent Visitor

Hi VJR,

 

Man, I was soooo close! The fact that “CurrentItem” variable plus the column has to be wrapped around %% together %CurrentItem ['Value #3']% like so, what I was missing. I was putting my column reference outside the % like so %CurrentItem% ['Value #6'] which did not work! Bummer....  😞

 

In addition, I read an articles relating to columns in the data table as "Col1", "Col2" etc. which confused me even more. You need to reference these columns as they are in your flow variables section as 'Value #1', 'Value #2’, 'Value #3’ and so on with single quotes around it… wow… details ha?

 

So I have one more question for you, in my initial explanation of this challenge I incorrectly stated that the value in column 2 is URL. It is actually hyperlink and each row leads to different record.

 

When I played with CSS selectors I learned that you can specify the “Href” attribute to get the actual URL from it. Is there a way to add that attribute here %CurrentItem ['Value #3']% to get to the URL, so then I can pass it to "Go to Web page" action or there is another way?

 

Please let me know,

 

Thank you so much,

Tom

@Tommy_Gunz 

 

During the extraction, right click on the hyperlink -> Extract element value -> href

 

VJR_0-1647573651215.png

 

 

Do this for the first and the second hyperlink and PAD will automatically create a table showing the hyperlinks as seen on the left hand side.

 

Note that I have also done the same for the Company column and therefore it is showing up under Value #1.

 

Note in the html code on the far left the link text is different than the actual URL.

VJR_1-1647573747001.png

 

 

This video will help you achieve all that you are looking for getting the hyperlinks.

Tommy_Gunz
Frequent Visitor

Hi VJR,

 

Wow, that is exactly what I was missing. I have learned a lot from you. I really appreciate you taking your time to help me out… it means a lot… I think I got enough for now to keep it on.  

 

Once again thank you,

Tom

PAuserFromFranc
Helper III
Helper III

Dear All, i'd love to deepen a bit more this topi as it sounds to me interesting.

To my case, the urls are not showing, they are stored into the as data-url attribute value which is an attribute of <tr> taf meaning "right click → exact element value → href" is not available

how to step forward and grab those urls to loop into the pages and retreive the datas we want in each single pages?

many thanks in advance for replies,

regards,

Fred

Hi Fred,

 

I think I have figured this out... Since you didn't provide sample code in your question, I have googled for "data-url attribute" and found this article  on Stack Over follow: "https://stackoverflow.com/questions/18227375/what-are-data-url-and-data-key-attributes-of-a-tag"

 

Dude there, offers source code of his<a> tag with "data-url" attrib.

 

Tommy_Gunz_0-1648156568590.png

When you click on that link it takes you to the source code of the link

 

Tommy_Gunz_1-1648156653326.png

 

I took that code and stage a sample page to demo a solution in PAD for you. Closer look reviles he got <a> tag and <img> tag for which we don't care, right?

 

Tommy_Gunz_2-1648156764858.png

 

I assume what you after in this example is the following:

 

data-url="https://www.facebook.com/sharer.php?u=http%3A%2F%2Fkoapi.heroku.com%3Fkid%3D1S05t=Caring%20is%20shar..."

 

data-url="https://twitter.com/share?url=http%3A%2F%2Fkoapi.heroku.com%3Fkid%3D1S05&amp;text=Join%20the%20revol...!"

 

and so on....

 

When you look at the render page of this stage sample, it looks like this. Four URL links and email:

 

Tommy_Gunz_3-1648156970591.png

So, in PAD I created new flow which look like this

 

Tommy_Gunz_4-1648157011481.png

 

Here I have open that sample page in Firefox... Personally I don't think PAD will care what browser you use...

 

Tommy_Gunz_5-1648157060986.png

 

Next, I did "Extract Data From Page" action

 

Tommy_Gunz_6-1648157190505.png

 

and here is the PAD magic I think you are seeking...

 

You can't see but I pointed my mouse pointer with the extract tool on the link and the tool first picked up the <img> tag.

 

Tommy_Gunz_7-1648157326592.png

 

But when you move your mouse pointer around that area, eventual you hit that <a> tag. Then just grab that Href. as is..

 

Tommy_Gunz_9-1648158119802.png

The URL that was captured is not what you want but that's OK for now! I have then done the same thing to the second URL, then right click, extract the element and get the second Href. A parentally in PAD when you do that twice int he row PAD is going to assume you want them all and will grab them like so..

 

Tommy_Gunz_13-1648159377316.png

 

Next click "Advanced Settings"

 

Tommy_Gunz_14-1648159450294.png

 

and change that attribute to from "Href" to "Data-url" and click Finish...

 

Tommy_Gunz_15-1648159494016.png

 

and there they are....

 

Tommy_Gunz_16-1648159554426.png

 

Notice, it picked up the private URLs as what I think you were after...

 

and so when I ran my test flow I  get it here

 

Tommy_Gunz_17-1648159676204.png

 

At this point If you got a table just wrap that up in the fore each loop just like VJR thought me and you should be good to go...

 

I hope this helps..

 

let me know...

 

Tom

 

 

 

 

 

 

 

 

PAuserFromFranc
Helper III
Helper III

Hello Tom, thanks for reply,

There is no <a> tag, only <tr> tag with the data-url attribute inside so meaning i don't find a way to grab those urls...

Another guess please?

thanks

Fred

PAuserFromFranc
Helper III
Helper III

Whooo Guys, i almost solved my issue ... Now i have another one, each record i make in the for each loop is creating a new spreadsheet (excel). I don't understand why, all the data extracted should be in list in one excel table no?

i extrat from each page of the list of urls and then translate to excelinstance but it seems it creates several variable (several sheets), how to solve this issue please?

thank you

fred

Hi Fred,

 

It would be nice if you provided code example with your problem.... it would ease off on that Mickey mouse back and forth.... but here you go...

 

I have modified my original sample page and moved the twitter and facebook data-url  to <tr> tag and I have commented out all of the <a> tags on the page. I assume thats what you meant, see below...

 

Tommy_Gunz_0-1648504369864.png

 

When I tried to use the data extract tool on the page I was picking up only <table>, <th> and <td>, no <tr>...

 

Tommy_Gunz_1-1648504599761.png

 

So what I did is I picked the <th> first, then <td>to prove the point PAD don't care which tag hold what attribute. All fair game... so it seems...

 

Tommy_Gunz_2-1648504686343.png

Tommy_Gunz_3-1648504748654.png

 

Then in the data tool I ended up with this:

 

Tommy_Gunz_4-1648504786036.png

 

Then just click the "Advanced Settings", bottom left..

 

Tommy_Gunz_5-1648504863822.png

I grab the 2 values for the CSS selector and modified it as below. Dropped what I don't need.

 

Tommy_Gunz_6-1648504973164.png

 

Then just made sure that the attribute textbox got data-url, then just click OK.

 

Tommy_Gunz_7-1648505079940.png

 

Next thing you know, what you know... Here are your links... 

 

Tommy_Gunz_8-1648505173159.png

 

You know the rest

 

I hope this helps...

Tom

 

PAuserFromFranc
Helper III
Helper III

Hello Tom, thank you very much but it's not any more my issue as i solved my major matter on this project.

I'm now trying to get all the data collected in a single spreadsheet instead of having each data rows in several spreadsheets (1 row of datas = 1 sheets)

i'm able now to collected the data i wanted but i want to condensate it in a single excel table

regards

fred

PAuserFromFranc
Helper III
Helper III

@VJR @Tommy_Gunz hello guys thanks motivating me! after hours of testing and searches i finally succeeded in my flow

I have now one single table in my excel spreasheet with all the datas i wanted ...

With this done, i'm building a perfect prospection database for my services!

Many Thanks guys and don't hesitate if i can help but i think you are better in this RPA domain.

Awesome Fred... Glad I was able to help.... Pay it forward... Mark it as accepted solution and give some thumbs up so I can catch up with VJR....

 

Later,

Tom

Helpful resources

Announcements
October Events

Mark Your Calendars

So many events happening this month - don't miss out!

 WHAT’S NEXT AT MICROSOFT IGNITE 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Register for a Free Workshop.png

Register for a Free Workshop

Learn to digitize and optimize business processes and connect all your applications to share data in real time.

Users online (2,653)