2014-01-29 42 views
3

如何檢查提交是否成功。當我給出正確的用戶名時,它不顯示任何內容。但即使我提交了錯誤的用戶名,也不會拋出任何錯誤。如何捕捉錯誤或檢查成功結果。任何幫助將不勝感激。謝謝。檢查錯誤或成功python機械

代碼:

try: 
    import mechanize 
except ImportError: 
    print "Could not import Mechanize. Please install from Mechanize website." 
br = mechanize.Browser() 
interletter = 'http://somesite.com/adminpanel/index.php' 
br.open(interletter) 
print br.geturl() 

br.select_form(name="frm_login") 
br["admin_userid"] = "user" 
br["admin_password"] = "pword" 
result2 = br.submit() 


http://somesite.com/adminpanel/index.php 
<response_seek_wrapper at 0x25a3cb0 whose wrapped object = <closeable_response at 0x25ab738 whose fp = <socket._fileobject object at 0x025A0970>>> 
+0

你看過'result2'來看看你得到了什麼迴應? – jonrsharpe

+0

它給了我一個對象。我已經更新了答案。 – Robin

+0

當我嘗試使用.open時,[Python Mechanize不斷給我'響應\ _seek \ _wrapper']的可能的重複(http://stackoverflow.com/questions/3955301/python-mechanize-keeps-giving-me-response-尋求包裝 - 當我嘗試使用打開) – jonrsharpe

回答

1

這有可能是你正在處理與Web服務器仍然發送HTTP 200狀態碼,即便登錄失敗。他們可能只是在響應的主體中包含錯誤文本。

您應該能夠調用result2.read()來獲取響應對象的內容。然後,你必須檢查或解析,以確定你的登錄嘗試是否成功。

+0

謝謝你的回答。我試過'result2.read()',但它不顯示任何東西,但是這個 - ''''。我做錯了什麼? – Robin

+0

這只是一個空字符串。也許服務器沒有返回任何東西? 它返回什麼HTTP狀態?檢查'result2.code' – bjmc

+0

它的返回'200'。 – Robin