[PyAthens] Πώς να submit μια HTML form με Javascript στοιχεία?

John Giftakis siropio at gmail.com
Thu Jan 6 08:14:45 CET 2011


Χαιρετε παιδες,

θα ηθελα την συμβουλη σας σε ενα θεματακι που εχω.
Θελω να κανω αυτοματο SUBMIT φορμας με ενα script σε Python. Οταν η φορμα
περιεχει μονο στοιχεια HTML το εχω καταφερει και ειναι σχετικα ευκολο και με
την Library mechanize αλλα και με την απλη urllib2.

Το θεμα μου ειναι πως μπορω να κανω submit την φορμα οταν μεσα εχει
Javascript.

Παραδειγμα:

Εστω οτι εχεις την εξης φορμα:

> <form name = "form1" method="POST"
>    <input type=hidden name="prevcat">
>    <input type=hidden name="prevcat1">
>    <b>Ημερομηνία:&nbsp;</b>
>        <SELECT class="search" name="dateduty" onchange =
> "javascript:document.comp.prevcat.value=document.comp.dateduty.selectedIndex;">
>
>          <Option value="-1">Επιλέξτε ημερομηνία
>          <Option value="5/1/2011" > 5/1/2011
>          <Option value="6/1/2011" selected> 6/1/2011
>        </SELECT>
>        <strong>Περιοχή:&nbsp;</strong>
>    <SELECT class="search" NAME="areaid" onchange =
> "javascript:document.comp.prevcat.value=document.comp.dateduty.selectedIndex;document.comp.prevcat1.value=document.comp.areaid.selectedIndex;">
>
>          <Option value="0">Όλες
>          <Option value="95"> ΑΓ.ΑΝΑΡΓΥΡΟΙ
>          <Option value="83"> ΑΓ.ΑΡΤΕΜΙΟΣ
>        </SELECT>
>       <script language=javascript>
>       function validateitems(){
>          var myerr='Πρέπει να επιλέξετε :\n\n';
>          if (document.comp.dateduty.selectedIndex==0)
> myerr=myerr+'Ημερομηνία\n';
>          if (myerr!='Πρέπει να επιλέξετε :\n\n') {
>             alert(myerr);
>             return false;
>          }
>          return true;
>
>       }
>    </script>
>
>         <input type="image"
> src="/Portals/_default/Skins/fsa/images/search1.gif" onClick="if
> (!validateitems()) return false;" alt="Αναζήτηση">
> </form>


Aν η form ηταν απλη HTML τοτε με την mechanize θα μπορουσες να κανεις το
εξης:(απλα ενα παραδειγμα γνωριζω οτι λειπουν στοιχεια)

import mechanize
>
> br = mechanize.Browser()
> br.open("http://www.example.com")
> br.select_form(predicate=lamda(form): 'form1' in form.action)
> br['dateduty'] = '6/1/2011'
> br['areaid'] = '83'
>
> response = br.submit()


Αλλα η Javascript με εμποδιζει εχοντας τις συναρτησεις της onclick και
onchange.


Ευχαριστω εκ των προταιρωνΓυφτάκης Γιάννης - Πειραιάς -
www.digitalfairytales.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pyathens/attachments/20110106/0127ad0c/attachment.html>


More information about the PyAthens mailing list