Kidney Posted December 1, 2013 Share Posted December 1, 2013 So i have a website that i use for work that has a bunch of call reports that i fill out every day i work. these call reports ask a bunch of questions that are easy but it gets annoying after about 100 of them. So im trying to make a script that will fill in the easy questions like: Time in, Time out, time spent at work in minutes, inventory level of x y z items, morning shift or night shift, etc I have gotten the script to log in for me and navigate to the point where there are a list of call reports but it seems that the page has multiple frames and multiple tables but i cant figure out how to get the links for all of the call reports. and to make matters worse, the site only works in IE. So i have to use the IE functions. So i guess my question is, is there some type of tool that i can use that can help me access links that are berried in tables and iframes?? i can post the html if that helps anyone. but its about 1700 lines of code. Thx Link to comment Share on other sites More sharing options...
mikell Posted December 1, 2013 Share Posted December 1, 2013 Did you try _IELinkGetCollection and _IEFrameGetCollection ? Link to comment Share on other sites More sharing options...
Exit Posted December 1, 2013 Share Posted December 1, 2013 Use developer tool (F12) or freeware 'Debugbar' App: Au3toCmd UDF: _SingleScript() Link to comment Share on other sites More sharing options...
karlkar Posted December 1, 2013 Share Posted December 1, 2013 (edited) If I were you, I'd open the page in developer tool (F12) and check out the id or name of frame that contain links. Then (assuming the frame id or name is "contentFrame"): $oIE = _IECreate("address") $frame = $oIE.document.getElementById("contentFrame") $links = $frame.contentWindow.document.getElementsByTagName("a") For $link In $links ConsoleWrite($link.src & @CRLF) Next Edited December 1, 2013 by karlkar Link to comment Share on other sites More sharing options...
Kidney Posted December 1, 2013 Author Share Posted December 1, 2013 Did you try _IELinkGetCollection and _IEFrameGetCollection ? Ya i did =/ Use developer tool (F12) or freeware 'Debugbar' Awesome! This is what i needed! Now, im not asking for anyone to code this i just want to make sure i know what step r needed to actually click on one of these links. Hopefully you can see the code a little. So if i wanted to click on the link that is highlighted, i would need to: 1) Get the handle of the body which is id= "b" 2) Get the Handle of div id = "d" 3) Get the handle of the iframe name = "main" 4) Get the handle of frame name = "fra_Main" 5) Get the handle of form name = "frmStoreList" 6) Get the handle of the First table 7) Get the handle of the second table which is inside the first table 8) Get the table data 9) click on the link does this seem correct?? Did i miss a step or do i have too many steps? Just curious and then ill take a stab at it. Thx guys! Link to comment Share on other sites More sharing options...
karlkar Posted December 1, 2013 Share Posted December 1, 2013 (edited) Just get the frame (you can skip first three points). Then using my code above get all tables from the frame and iterate over them as long as you will find the one matching borderColor attribute (as I see that they are different for the first and second table). Of course you can get all tables and then take the second element, but this is not as change-proof. I mean there may appear some dynamic content that will change this tables to be for example second and third. Or you can use exactly the same code as I posted before with checking if attributes are meeting your requirements. no matter what you do - you have to get the frame first. Edited December 1, 2013 by karlkar Link to comment Share on other sites More sharing options...
Kidney Posted December 2, 2013 Author Share Posted December 2, 2013 i tried your code above and im getting errors. am i supposed to change the "a" in the getElementsByTagName? i tried your code with "main" and "fra_Main" and neither of them returned anything in the console. ill post the error codes when i get home. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now