Web automation (was: Pressing a Webpage Button)

calfdog at yahoo.com calfdog at yahoo.com
Thu Nov 3 13:20:41 EST 2005


Hello,

It's fairly easy to do see code below:
##########################################################################
from win32com.client import DispatchEx
import time

# instaniate a new IE object
ie = DispatchEx('InternetExplorer.Application')

# Naviagte to the site
ie.Navigate("www.google.com")

# You have to wait for the site to load. Best use a method that check
for readystate ="complete" and ie.Busy
while ie.Busy:
            time.sleep(0.1)

        doc = self._ie.Document

        while doc.readyState != 'complete':
            time.sleep(0.1)

ie.Document.all["q"].value ="Python rocks"
ie.Document.all["btnG"].click()

I have a wrapper that does all this for you. It is geared for people in
QA. You can download if here
URL : http://pamie.sourceforge.net


To use it is simple" The wait to laod the doc is already in the code
###########################################
from cPAMIE import PAMIE

ie=PAMIE()

ie.Navigate(www.google.com)

# Set the text - arguments - value to set, textbox name, formname
ie.SetTextBox('Python","q","f")
ie.ClickButton("btnG,"f")
ie.ClickLink('Python Programming Language')

Hope this helps

Rob





qwweeeit at yahoo.it wrote:
> Hi all,
> Elliot Temple on  the  1 June wrote:
> > How do I make Python press a button on a webpage?  I looked at
> > urllib, but I only see how to open a URL with that.  I searched
> >  google but no luck.
>
> > For example, google has a button   <input type=submit value="Google
> > Search" name=btnG>  how would i make a script to press that button?
>
> I have a similar target: web automation, which
> needs not only to press web buttons but also
> fill up input fields (like in your case the
> search field of Google).
> On the suggestion of gmi... at gmail.com, I tried
> twill (http://www.idyll.org/~t/www-tools/twill.html).
>
> I think it can be the solution:
> I already applied it for reading data from an asp file
> (http://groups.google.it/group/comp.lang.python/browse_frm/thread/23b50b2c5f2ef377/2e0a593e08d28baf?q=qwweeeit&rnum=2#2e0a593e08d28baf)
> I try to solve your problem using the interactive mode
> (but twill can also be called as a module).
>
> Set twill in interactive mode: twill-sh
> - load Google webpage:
>      go www.google.it (I'm Italian!)
> - show the page with the command 'show'
> - Get the page forms:
>      showforms
>
> ## __Name______ __Type___ __ID________ __Value__________________
>    hl           hidden    (None)       it
>    ie           hidden    (None)       ISO-8859-1
>    q            text      (None)
>    meta         radio     all          [''] of ['', 'lr=lang_it',
> 'cr=count ...
> 1  btnG         submit    (None)       Cerca con Google
> 2  btnI         submit    (None)       Mi sento fortunato
> current page: http://www.google.it
>
> The input field is q (Type:text), while there are two buttons
> (Type: submit) and a radio button meta (Type: radio).
>
> - fill values:
>      fv 0 q twill
>   (being "twill" the search string")
> - press the search button:
>      fv 1  btnG "Cerca con Google"
>      submit
>   twill answers with the query to Google:
> http://www.google.it/search?hl=it&ie=ISO-8859-1&q=twill&btnG=Cerca+con+Google&meta=
> - save the search result on a file:
>      save_html /home/qwweeeit/searching_twill.html
>
> Here they are the 1st 10 hits of the search!
> Don't ask me to continue! Perhaps asking to the author of twill
> (C. Titus Brown)...
>
> With such a method you can bypass the Google's restrictions, because
> you are using the browser (only building automatically the query).
>
> And this answers to the right observation of Grant Edwards:
> > Ah, never mind.  That doesn't work.  Google somehow detects
> > you're not sending the query from a browser and bonks you.
>  
> Bye.




More information about the Python-list mailing list