2010-07-14 50 views
1

我正在努力與此。我有一個完全測試的Python腳本。我必須做一些小改動,首先點擊一個單選按鈕,然後自動執行一個將頁面轉發到搜索表單的javascript函數。如何點擊javascripted'單選按鈕並使用Python(urllib2)獲取下一頁? [WebScrape,硒]

我的工作平臺:Linux的

語言:Python的

單選按鈕代碼:頁面上

<input type="radio" language="javascript" onclick="javascript:setTimeout('__doPostBack(\'_ctl0$Main$SearchRadio\',\'\')', 0)" value="SearchRadio" name="_ctl0:Main:SearchRadio" id="_ctl0_Main_SearchRadio"> 

Javascript代碼:

<script type="text/javascript"> 
<!-- 
var theForm = document.forms['aspnetForm']; 
    if (!theForm) { 
    theForm = document.aspnetForm; 
} 
    function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 
    // --> 
</script> 

這是硒呢。不知道它是否有幫助。

def test_untitled(self): 
     sel = self.selenium 
     sel.open("/Search/results.aspx") 
     sel.click("_ctl0_Main_SearchRadio") 
     sel.wait_for_page_to_load("30000") 
     sel.type("-InputTextField", "ThinkCode") 
     sel.click("_SearchMainUser") 
     sel.wait_for_page_to_load("30000") 
     try: self.failUnless(sel.is_text_present("ThinkCode")) 
     except AssertionError, e: self.verificationErrors.append(str(e)) 

所有我想要做的就是去我們被重定向到一旦我們點擊單選按鈕,結果頁面。我使用urllib2閱讀了python web-scraping中的javascript恐怖內容。希望一種pythonista將盡快幫助我:)

+0

爲什麼不能使用'sel.click'方法? – 2010-07-14 23:39:59

+0

這就是硒只是爲了追蹤事件。如果我沒有錯,它是基於瀏覽器的。我的平臺是一個Linux機器。 – ThinkCode 2010-07-14 23:45:15

+0

你的代碼對我來說看起來不錯 - 你有沒有試過在一個平臺上(甚至是你的本地桌面機器上)運行它,在那裏你可以觀看Selenium正在駕駛的瀏覽器,這樣你就可以看到你的單選按鈕是否被點擊,你的文本領域正在填補,等? – Eric 2011-08-25 21:40:19

回答

0

而不是嘗試自動化單擊JavaScript按鈕,這在Python中很困難,請嘗試監視發送了什麼請求,然後複製它。有各種各樣的Firefox擴展可以幫助你做到這一點,例如TamperData,FirebugLiveHttp

相關問題