ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Internet Explorer Automation from Excel and the ReadyState propert (https://www.excelbanter.com/excel-programming/352253-internet-explorer-automation-excel-readystate-propert.html)

rMartyr

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


[email protected]

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




All times are GMT +1. The time now is 02:46 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com