in reply to Driving Internet Explorer with Perl

This post was very helpful! Thanks! If I already have several Internet Explorer windows open, how can I instruct Perl which one to latch on to? I could check all IE windows for the URL or target I want, but I don't know how to scan through all of the open IE windows. Thanks in advance, Mike
  • Comment on Re: Driving Internet Explorer with Perl

Replies are listed 'Best First'.
Re^2: Driving Internet Explorer with Perl
by rsilvergun (Acolyte) on Jul 20, 2010 at 17:04 UTC
    my $shell = Win32::OLE->new('Shell.Application'); my @ies = grep { $_->FullName =~ /iexplore\.exe$/ } in $shell->Windows +; foreach $ie (@ies){# eval{ $ie->{document}->getElementById("PUT THE ID OF AN ELEMENT THAT + IDENTIFIES THE PAGE YOU'RE LOOKING FOR HERE"); $IEWindowYouAreLookingFor = $ie; };#end eval }#END FOREACH
    The way it works, if the element you're looking for isn't there the call to getElementById throws an error and the line:

    $IEWindowYouAreLookingFor = $ie;

    never executes. Otherewise the line runs and $IEWindowYouAreLookingFor gets set to point to the $ie window you're looking for. Use the Microsoft IE Developer toolbar to track down the IDs of stuff on the page.

    This doesn't work if the end user has mulitple pages from the same site up. I don't know any way to check if the page has focus...