2012-12-11 48 views
0

好的,所以我使用Mechanize登錄Google組並手動將組員添加到組中。在Python中使用Mechanize填充和提交textarea

我已經能夠成功登錄並導航到適當的頁面。在此頁面上有一個textarea框,您可以在其中添加要手動添加到組中的電子郵件地址。

下面是文本區域的HTML:

<textarea class="gwt-TextArea GFBTXDWBA-" id="gwt-uid-224" aria-haspopup="false" dir="" role="combobox" aria-autocomplete="list" aria-activedescendant=""></textarea> 

當我運行一個循環:

for form in br.forms(): 
print form 

被返回的唯一形式是「搜索成員的頂部,沒有形式的文字區域出現。

我不認爲select_form會起作用,因爲它實際上並不是一種形式。有一個「添加」按鈕,從這裏textarea的提交輸入屏幕的左上方的「添加」按鈕,在HTML:什麼我試圖做的是添加

<input type="text" tabindex="-1" role="presentation" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow: hidden; position: absolute;"> 

一個電子郵件地址到文本區域並提交。任何幫助將大大讚賞。

這裏是我的全碼:

import mechanize 
import cookielib 

br = mechanize.Browser() 

cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

br.set_handle_equiv(True) 
br.set_handle_gzip(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

r = br.open('https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fgroups.google.com%2Fd%2Fmanagemembers%2Ftesttgroup123456%2Fadd&hl=en&service=groups2&passive=true') 
html = r.read() 

br.select_form(nr=0) 

br.form['Email']='myUsername' 
br.form['Passwd']='myPassword' 
br.submit() 

for form in br.forms(): 
    print form 
+0

我把它https://developers.google.com/google -apps/groups-settings /不適合某些原因? –

+0

@Jon,我不熟悉這個API,是否可以做我正在試圖用它做的事情?如果是這樣,你是否會友好地指點我正確的方向,我已經瀏覽了文檔,我無法找到看起來會實現我想要做的事情的東西。 – Russell

+0

恩 - 我不能說我有這方面的經驗,它看起來有點笨拙,但它可能是首選方法 - http://code.google.com/p/google-api-python-client/source/browse /#hg%2Fsamples%2Fgroupssettings –

回答