in reply to COM/OLE vs. LWP to access Siebel data?

I switched to using Win32::IEAutomation because I thought maybe I could dump the page to get an idea of what to do next. When I use
my @images = $ie->getAllImages; print "@images\n"; my @links = $ie->getAllLinks; print "@links\n";
I don't get any output and am not sure how to coax any output from the page. Am I using this wrong? When I use this technique on www.google.com I either get an integer returned when using a scalar or references when using arrays so I know that I'm close.

The full script:

use strict; use warnings; use Win32::IEAutomation; use Data::Dumper; # Creating new instance of Internet Explorer my $ie = Win32::IEAutomation->new( visible => 1); # Site navigation #$ie->gotoURL('http://server.company.com/callcenter_enu/start.swe'); my @images = $ie->getAllImages; #print Dumper(@images); print "Image: @images\n"; my @links = $ie->getAllLinks; #print Dumper(@links); print "Link: @links\n";
When I do a view source this is what I get:
<HTML ><head><title>TESTSIEB Siebel Call Center</title><link href="fil +es/main.css" rel="stylesheet"/></head><BODY class="tier2Back" topmarg +in="0" leftmargin="0" marginheight="0" marginwidth="0" onResize="resi +zeHTMLMsgBar()"><div id=dvUIBlock onmousedown="if (!SWEPopupGainFocus +()) this.style.display='none';" style=z-index:101;display:none;positi +on:absolute;top:0;left:0;width:100%;height:100%><TABLE HEIGHT=100% WI +DTH=100%><TR HEIGHT=100%><TD WIDTH=100%>&nbsp;</TD></TR></TABLE></div +><div id=dvBusy style=z-index:100;cursor:wait;display:block;position: +absolute;top:0;left:0;width:100%;height:100%><TABLE HEIGHT=100% WIDTH +=100%><TR HEIGHT=100%><TD WIDTH=100%>&nbsp;</TD></TR></TABLE><div id= +dvScroll style=z-index:100;visibility:hidden;position:absolute;top:0; +left:0;width:100%;height:100%;overflow:auto><textarea rows=500 cols=1 +></textarea></div></div> <script language="javascript" src="16279/scripts/sweutil_stmp.js"></sc +ript> <script> if(typeof(top._swescript)!='undefined'&&top._swescript!=null) top._swe +script.InitFrame(this);</script> <script language="javascript" src="16279/scripts/htmlMessageBar.js"></ +script> <span id=HTMLMessageBar>&nbsp;</span><script>window.setTimeout("Create +MessageBar('HTMLMessageBar', 'HI')", 4000);</script> <script language="javascript" src="16279/scripts/swecommon.js"></scrip +t> <script language="javascript" src="16279/scripts/swecmn_hi.js"></scrip +t> <script> SWEIsHighInteract = true; Top().SWEIsHighInteract = true; if (typeof(Top().SWEHtmlPopupName) == 'undefined' || Top().SWEHtmlPopu +pName == null) Top().SWEHtmlPopupName = '_swe1243292505'; if (typeof(top._samePage) != 'undefined' && top._samePage!="") top._sa +mePage = ""; if (top.opener == null || typeof top.opener.swetop == 'unknown' || typ +eof top.opener.swetop == 'undefined') top._swe._sweapp.S_App.SWECount + = 1; else top.opener.top._swe._sweapp.S_App.SWECount = 1; g_bInitialized = true; var ctrlLookupMap = new Array(); function FindControl (appletName, controlName) { return (ctrlLookupMap + [appletName + "." + controlName]); } var ctrlLookupMap = new Array(); function FindControl (appletName, controlName) { return (ctrlLookupMap + [appletName + "." + controlName]); } </script> <script for=window event=onunload> if (typeof Top()._swe != "undefined" ) try{Top().JSSHandleEvents(this, + false);}catch(e){} </script> <script for=window event=onload> if (typeof Top()._swe != "undefined" ) {Top().JSSHandleEvents(this, tr +ue);}else HandleEvent("Disable", false); </script> <script for=window event=onresize>resizeHTMLMsgBar();</script></BODY>< +/HTML>

I have to use IE since Siebel won't work without it here. Seibel installs some kind of ActiveX control in the browser. Otherwise I would try some of the suggestions like LiveHeaders or some other tools.
There are a lot of questions here on The Monastery Gates about How do I perform web automation with sites that use Javascript? so I'm sorry if this is a FAQ but I'm not sure how to procede.

Replies are listed 'Best First'.
Re^2: COM/OLE vs. LWP to access Siebel data?
by glasswalk3r (Friar) on Aug 10, 2011 at 09:08 UTC

    Quite an old node, but anyway...

    You really should quit using any way of browser simulation to get the desired data: Siebel High Interactive Client does uses ActiveX and Java applets so it could behave like a full GUI.

    Your best option is to use well defined interfaces like COM+, SOAP or the old method to post HTTP data and get an response. Of course, for the two latest options you would need to develop the interfaces from Siebel side. COM+ should be easier to implement, but it has it's drawbacks.

    Alceu Rodrigues de Freitas Junior
    ---------------------------------
    "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill