Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

Every real-world mechanize script has to, first and foremost, make no assumption as to which screen actually will pop-up next.   (It’s not enough merely to check for HTTP 202.)   You have to identify the screen:   did “The Monastery Gates” really appear?   And so on.   The next follow-on question is to be sure that you are (still) logged in ... a peculiarly frequent problem with this particular site, sometimes.   You do this by explicitly checking, every time, that you do indeed find text like “Log my_userid Out” at the expected spot, vs. “Log In” at that same spot.

A mechanize-script in actual production is not quite as simple as it first appears:   it must be a finite-state machine (FSM) design, because in the final analysis the host web-site is driving the bus.   Your logic must send the HTTP messages that you expect will work, but you always have to reconcile this with what actually comes back.   “Kilroy was an optimist” sometimes.

Fact of the matter is, a production mechanize-script is often two FSMs:   one which tracks the state of the host, and the second which tracks the state of what you are trying to do.

In reply to Re: How to check if successfully logged in? by sundialsvc4
in thread How to check if successfully logged in? by Hellena

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others perusing the Monastery: (7)
    As of 2015-11-27 18:15 GMT
    Find Nodes?
      Voting Booth?

      What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

      Results (731 votes), past polls