Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Internet Explorer Automation from Excel and the ReadyState propert
After getting the automation tips for how to manipulate IE from Excel from
here and Dicks-blog, I've run into a bit of a snag that I hope is just based on my lack of comprehension. I'm using this loop to wait for the page to be ready as I saw in some examples: Do DoEvents tSystem.Sleep 0.8 ' I put this in to try to troubleshoot since delays seem to help... Loop Until IeApp.ReadyState = READYSTATE_COMPLETE The ReadyState property doesn't seem to mean the same thing as I'd hoped. Sometimes page can be done loading, ReadyState = 4, but not actually ready for input. In this case when the keystrokes come, they just impact on the surface of a busy page and are lost from the sequence. Am I missing a ReadyState subtlety about frames, forms or scripts on a page? Can anyone advise me on a better property to wait for if what I really want is to know whether a keystroke or mouseclick will be accepted on a form in a frame in IE? Thank you for your attention, Ryan |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Internet Explorer Automation from Excel and the ReadyState propert
If you know VB.NET or C# you can try SW Explorer Automation
(SWEA) (tp://home.comcast.net/~furmana/SWIEAutomation.htm) The SWEA makes IE automation very simple. SWEA supports frames, dialog boxes (alerts), html dialog boxes. The following example shows how to get a table from the http://newsite.tab.co.nz/racing/ Web site using SWEA. SWEAProject.htp was created by SWEA Visual Designer. SWEA designer contains Visual Table Extractor. The Table Data Extractor extracts tabular data from the Web pages. If a Web page contains repeating information patterns than the data can be transformed into ADO.NET DataTable object. public static void Main() { SWExplorerAutomation.Client.ExplorerManager explorerManager = new SWExplorerAutomation.Client.ExplorerManager(); SWExplorerAutomation.Client.Scene scene; explorerManager.Connect(-1); explorerManager.LoadProject("SWEAProject.htp"); explorerManager.Navigate("http://newsite.tab.co.nz/racing/"); scene = explorerManager["Scene_0"]; scene.WaitForActive(30000); System.Data.DataTable dataTable; dataTable = ((HtmlContent)(scene["HtmlContent_0"])).TableDataExtractor.DataTable; explorerManager.DisconnectAndClose(); } The DataTable can be stored into text file (CSV) and loaded by Excel or Excel application can be called directly from the scraping program. rMartyr wrote: After getting the automation tips for how to manipulate IE from Excel from here and Dicks-blog, I've run into a bit of a snag that I hope is just based on my lack of comprehension. I'm using this loop to wait for the page to be ready as I saw in some examples: Do DoEvents tSystem.Sleep 0.8 ' I put this in to try to troubleshoot since delays seem to help... Loop Until IeApp.ReadyState = READYSTATE_COMPLETE The ReadyState property doesn't seem to mean the same thing as I'd hoped. Sometimes page can be done loading, ReadyState = 4, but not actually ready for input. In this case when the keystrokes come, they just impact on the surface of a busy page and are lost from the sequence. Am I missing a ReadyState subtlety about frames, forms or scripts on a page? Can anyone advise me on a better property to wait for if what I really want is to know whether a keystroke or mouseclick will be accepted on a form in a frame in IE? Thank you for your attention, Ryan |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Internet Explorer 7 & Excel 2000 | Excel Discussion (Misc queries) | |||
Excel/VBA/Internet Explorer | Excel Programming | |||
Internet Explorer & Excel | Excel Programming | |||
Internet Explorer Automation with Excel VBA | Excel Programming | |||
Help Internet Explorer Automation - How to run the script's ?? | Excel Programming |