On Wed, Jul 2, 2008 at 5:44 PM, Duzenbury, Rich <[EMAIL PROTECTED]> wrote:
> Hello all,
>
> I have mechanized a site using LWP and Mechanize that has been working
> for about a year, but now no longer does.  The site owner has made some
> recent changes, but I think mechanize, or more precisely HTML::form
> might be having trouble parsing the page and I'd like to find out why.
>
> In order to make the form work, I set the __EVENTTARGET hidden field to
> a certain value, but as of this week, the script dies with:
>
> $self->mech->field('__EVENTTARGET',
> 'ChangeViewControl1$ImpersonateCommand');
> No such field '__EVENTTARGET' at
> /usr/lib/perl5/site_perl/5.8.7/WWW/Mechanize.pm line 1247
>
> Sure enough, a form dump no longer shows the __EVENTTARGET field,
> however, the 'view source' from firefox shows that there are several
> hidden fields created.  Notably, the first three that are blank,
> __EVENTTARGET, __EVENTARGUMENT, and __LASTFOCUS are all missing from the
> form dump.  __VIEWSTATE and __EVENTVALIDATION are both fine.
>
> Here is a sample of the page source causing the trouble:

If you feed the HTML below to HTML::Form->parse() it will pick up the
fields just fine, so there must be something else going on.  Perhaps
your Mechanize script does not see the same page as Firefox (content
switching based on User-Agent?).  You need to verify that the page
Mechanize gets has the right content first.

--Gisle

>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
> <HTML>
>        <HEAD>
>                <TITLE>IIG - Commission </TITLE>
>                <META CONTENT="Microsoft Visual Studio 7.0"
> NAME="GENERATOR">
>                <META CONTENT="C#" NAME="CODE_LANGUAGE">
>                <META CONTENT="JavaScript"
> NAME="vs_defaultClientScript">
>                <META
> CONTENT="http://schemas.microsoft.com/intellisense/ie5";
> NAME="vs_targetSchema">
>                <LINK rel="stylesheet" type="text/css"
> href="/iig/Includes/content.css">
>
>                <LINK rel="stylesheet" type="text/css"
> href="/iig/Includes/design.css">
>        </HEAD>
>        <BODY BACKGROUND="/IIG/images/graphics/LeftnavBG.gif">
>                <form name="BM_COMMISSION" method="post"
> action="BM_Commission.aspx" id="BM_COMMISSION">
> <div>
> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT"
> value="" />
> <input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
> value="/wEPDwUKMTk5OTEyOTc2OQ9kFgICAQ9kFgwCAw9kFgJmD2QWAmYPEGRkFgFmZAIFD
> 2QWBAIBDw9kFgIeB29uY2xpY2sFKHJldHVybiBwZXJzb25hbCBub3RlLi4uZGQCAw8PFgIfA
> QUuSGF2ZSBhIG5pY2UgZGF5ISAgVGhhbmsgeW91IGZvciB5b3VyIGJ1c2luZXNzLmRkZGnL0
> vBu6mpGya0ys5hHzxb2uD41" />
> </div>
>
> <script type="text/javascript">
> //<![CDATA[
> var theForm = document.forms['BM_COMMISSION'];
> if (!theForm) {
>    theForm = document.BM_COMMISSION;
> }
> function __doPostBack(eventTarget, eventArgument) {
>    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
>        theForm.__EVENTTARGET.value = eventTarget;
>        theForm.__EVENTARGUMENT.value = eventArgument;
>        theForm.submit();
>    }
> }
> //]]>
> </script>
>
>
> ... lots and lots of stuff ...
>
>        <input type="hidden" name="__EVENTVALIDATION"
> id="__EVENTVALIDATION"
> value="/wEWCwL43P67BgKPhY63AQKvyf96AuGR/ZsLAt7k4+oBAr/7qI8CApDruZ4MArj/l
> YsOAqmWg8ABApLw8ekBAon9/ZAFbIsAYNVghSRuGVlbiVaPL3r23/U=" />
> </div>
> <script language="javascript"
> type="text/javascript">xm_GetMenu('TopNav1$topMenu').xm_HK();</script></
> form>
>
>
> If you can help out that would be great.  One thought I had, can I force
> a new hidden field into the form?
>
> Thank you.
>
> Regards,
> Rich
>
>
>



-- 
Gisle Aas

Reply via email to