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
Solved! Go to Solution.
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.
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.
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
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.
You use the For Each loop on the Datatable.
Instead of the "Display message", use the "Go to Web page" action with the above URL.
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
During the extraction, right click on the hyperlink -> Extract element value -> href
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.
This video will help you achieve all that you are looking for getting the hyperlinks.
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
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.
When you click on that link it takes you to the source code of the link
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?
I assume what you after in this example is the following:
data-url="https://twitter.com/share?url=http%3A%2F%2Fkoapi.heroku.com%3Fkid%3D1S05&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:
So, in PAD I created new flow which look like this
Here I have open that sample page in Firefox... Personally I don't think PAD will care what browser you use...
Next, I did "Extract Data From Page" action
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.
But when you move your mouse pointer around that area, eventual you hit that <a> tag. Then just grab that Href. as is..
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..
Next click "Advanced Settings"
and change that attribute to from "Href" to "Data-url" and click Finish...
and there they are....
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
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
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
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...
When I tried to use the data extract tool on the page I was picking up only <table>, <th> and <td>, no <tr>...
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...
Then in the data tool I ended up with this:
Then just click the "Advanced Settings", bottom left..
I grab the 2 values for the CSS selector and modified it as below. Dropped what I don't need.
Then just made sure that the attribute textbox got data-url, then just click OK.
Next thing you know, what you know... Here are your links...
You know the rest
I hope this helps...
Tom
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
@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