[twill] help automating gmail and yahoo mail
Mark Devine
mfmdevine at gmail.com
Mon Jun 29 07:00:39 PDT 2009
Hi
I need help automating both gmail and yahoo mail using twill. I wonder
if someone could point me in the right direction. I used the following
code to access gmail but I got a
urllib2.URLError: <urlopen error unknown url type: 'http>
error when I ran it. I have included the Traceback
import twill, string, os
b=twill.commands.get_browser()
b.set_agent_string("Mozilla/5.0 (Windows; U; Windows NT 5.1;
en-GB;rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14")
b.clear_cookies()
b.go('http://www.gmail.com')
f=b.get_form("1")
b.showforms()
f['Email']= email
f['Passwd'] =password
b.clicked(f, f)
b.submit()
When I run the code I get:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/browser.py", line
115, in go
self._journey('open', u)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/browser.py", line
540, in _journey
r = func(*args, **kwargs)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 156, in open
return self._mech_open(url, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 182, in _mech_open
response = UserAgentBase.open(self, request, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 191, in open
response = meth(req, response)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_http.py",
line 573, in http_response
response = self.parent.error(
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 208, in error
result = apply(self._call_chain, args)
File "/opt/ams/mdevine/lib/python2.4/urllib2.py", line 337, in _call_chain
result = func(*args)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_http.py",
line 129, in http_error_302
return self.parent.open(new)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 156, in open
return self._mech_open(url, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 182, in _mech_open
response = UserAgentBase.open(self, request, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 191, in open
response = meth(req, response)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_http.py",
line 573, in http_response
response = self.parent.error(
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 208, in error
result = apply(self._call_chain, args)
File "/opt/ams/mdevine/lib/python2.4/urllib2.py", line 337, in _call_chain
result = func(*args)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_http.py",
line 129, in http_error_302
return self.parent.open(new)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 156, in open
return self._mech_open(url, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 182, in _mech_open
response = UserAgentBase.open(self, request, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 191, in open
response = meth(req, response)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/utils.py", line
455, in http_response
"refresh", msg, hdrs)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 208, in error
result = apply(self._call_chain, args)
File "/opt/ams/mdevine/lib/python2.4/urllib2.py", line 337, in _call_chain
result = func(*args)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_http.py",
line 129, in http_error_302
return self.parent.open(new)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 156, in open
return self._mech_open(url, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_mechanize.py",
line 182, in _mech_open
response = UserAgentBase.open(self, request, data)
File "/home/mdevine/qa/aqa/mfe/site-packages/twill/other_packages/mechanize/_opener.py",
line 180, in open
response = urlopen(self, req, data)
File "/opt/ams/mdevine/lib/python2.4/urllib2.py", line 381, in _open
'unknown_open', req)
File "/opt/ams/mdevine/lib/python2.4/urllib2.py", line 337, in _call_chain
result = func(*args)
File "/opt/ams/mdevine/lib/python2.4/urllib2.py", line 1053, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: 'http>
I also had a problem with yahoo mail when I logged in I found that
there was just one form and it had not got the inbox in it:
>>> import twill, string, os
>>> b=twill.commands.get_browser()
>>> b.set_agent_string("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB;rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14")
>>> b.clear_cookies()
>>> b.go("http://mail.yahoo.com")
Redirected to <Request for
https://login.yahoo.com/config/login_verify2?&.src=ym>
==> at https://login.yahoo.com/config/login_verify2?&.src=ym in
0.37890791893 secs
>>> f=b.get_form("1")
>>> b.showforms()
Form name=login_form (#1)
## ## __Name____________________________ __Type___
__ID____________________ __Value__________________
1 .tries hidden (None)
1
2 .src hidden (None)
ym
3 .md5 hidden (None)
4 .hash hidden (None)
5 .js hidden (None)
6 .last hidden (None)
7 promo hidden (None)
8 .intl hidden (None)
us
9 .bypass hidden (None)
10 .partner hidden (None)
11 .u hidden (None)
81cps6p54h7fv
12 .v hidden (None)
0
13 .challenge hidden (None)
2xPl5mhaAcuDjrKcEK7zP_fLN8.E
14 .yplus hidden (None)
15 .emailCode hidden (None)
16 pkg hidden (None)
17 stepid hidden (None)
18 .ev hidden (None)
19 hasMsgr hidden (None)
0
20 .chkP hidden (None)
Y
21 .done hidden (None)
http://mail.yahoo.com
22 .pd hidden (None)
ym_ver=0&c=&ivt=&sg=
23 login text username
24 passwd password passwd
25 .persistent checkbox persistent
[] of ['y']
26 1 .save submit (None)
Sign In
>>> f['login']= email
>>> f['passwd'] =password
>>> b.clicked(f, f)
>>> b.submit()
Note: submit is using submit button: name=".save", value="Sign In"
Following HTTP-EQUIV=REFRESH to
http://ie.mg41.mail.yahoo.com/dc/launch?.gx=0&.rand=ats9inotdjll8
Redirected to <Request for
http://ie.mg41.mail.yahoo.com/dc/launch?.gx=0&.rand=ats9inotdjll8>
>>> b.showforms()
Form #1
## ## __Name____________________________ __Type___
__ID____________________ __Value__________________
1 webSrchInput text webSrchInput
2 ei hidden ei
UTF-8
3 fr hidden fr_code
ush-mailc
4 p hidden p
5 1 searchbutton submit searchbutton
Search
>>>
Any help would be appreciated as I need to create webmail generators for work.
Thanks
M
More information about the twill
mailing list