2011-05-27 108 views
0

艾米想法是什麼意思?需要幫助瞭解這個Python Traceback

Traceback (most recent call last): 
    File "C:\Python27\Sample Programs\Spynner Basic.py", line 17, in <module> 
    br.select("#IBESNA~US") 
    File "C:\Python27\lib\site-packages\spynner\browser.py", line 862, in select 
    self._runjs_on_jquery("select", jscode) 
    File "C:\Python27\lib\site-packages\spynner\browser.py", line 394, in _runjs_on_jquery 
    raise SpynnerJavascriptError("error on %s: %s" % (name, code)) 
SpynnerJavascriptError: error on select: jq('#IBESNA~US').attr('selected', 'selected') 

這裏是我的代碼:

from __future__ import division 
from __future__ import unicode_literals 
from __future__ import print_function 
import re 
import spynner 
from BeautifulSoup import BeautifulSoup 
import time 
br = spynner.Browser() 
br.create_webview() 
br.show() 
br.set_html_parser(BeautifulSoup) 
br.load("https://www.thomsononeim.com/s-log_in.asp") 
br.fill("input[name=txtLoginID]", "jmodell") 
br.fill("input[name=txtPWD]", "rhb") 
br.click("input[name=Submit]", wait_load=True) 
br.click("input[name=Market]", wait_load=True) 
br.select("option[value=IBESNA~US]") 
br.browse() 
br.close() 

而這裏的源:

<tr> 
<td valign="middle" align="right"> 
<select onkeypress="javascript:if (event.keyCode == 13){valid();}" style="font-family:Tahoma; font-size:11px;FONT-WEIGHT :normal;height:20px;" name="mkt"> 
<option value="0">All Markets</option> 
<option value="IBESLA~AR">Argentina </option> 
<option value="IBESAA~AU">Australia </option> 
<option value="IBESEA~AT">Austria </option> 
<option value="IBESEB~BE">Belgium </option> 
<option value="IBESLB~BR">Brazil </option> 
<option value="IBESNC~CA">Canada </option> 
<option value="IBESLC~CL">Chile </option> 
<option value="IBESFC~CN">China </option> 
<option value="IBESLL~CO">Colombia </option> 
<option value="IBESDC~HR">Croatia </option> 
<option value="IBESEC~CZ">Czech Republic </option> 
<option value="IBESSD~DK">Denmark </option> 
<option value="IBESKE~EG">Egypt </option> 
<option value="IBESDE~EE">Estonia </option> 
<option value="IBESSF~FI">Finland </option> 
<option value="IBESEF~FR">France </option> 
<option value="IBESED~DE">Germany </option> 
<option value="IBESEH~GR">Greece </option> 
<option value="IBESFH~HK">Hong Kong </option> 
<option value="IBESEM~HU">Hungary </option> 
<option value="IBESFI~IN">India </option> 
<option value="IBESFL~ID">Indonesia </option> 
<option value="IBESEZ~IE">Ireland </option> 
<option value="IBESFZ~IL">Israel </option> 
<option value="IBESEI~IT">Italy </option> 
<option value="IBESFJ~JP">Japan </option> 
<option value="IBESFR~JO">Jordan </option> 
<option value="IBESFM~MY">Malaysia </option> 
<option value="IBESKP~MU">Mauritius </option> 
<option value="IBESLM~MX">Mexico </option> 
<option value="IBESKM~MA">Morocco </option> 
<option value="IBESEN~NL">Netherlands </option> 
<option value="IBESAN~NZ">New Zealand </option> 
<option value="IBESSN~NO">Norway </option> 
<option value="IBESFQ~PK">Pakistan </option> 
<option value="IBESLP~PE">Peru </option> 
<option value="IBESFP~PH">Philippines </option> 
<option value="IBESEG~PL">Poland </option> 
<option value="IBESEP~PT">Portugal </option> 
<option value="IBESEK~RO">Romania </option> 
<option value="IBESER~RU">Russia </option> 
<option value="IBESFS~SG">Singapore </option> 
<option value="IBESDR~SK">Slovakia </option> 
<option value="IBESDV~SI">Slovenia </option> 
<option value="IBESKS~ZA">South Africa </option> 
<option value="IBESFK~KR">South Korea </option> 
<option value="IBESEE~ES">Spain </option> 
<option value="IBESBL~LK">Sri Lanka </option> 
<option value="IBESSS~SE">Sweden </option> 
<option value="IBESES~CH">Switzerland </option> 
<option value="IBESFA~TW">Taiwan </option> 
<option value="IBESFT~TH">Thailand </option> 
<option value="IBESET~TR">Turkey </option> 
<option value="IBESEX~GB">United Kingdom </option> 
<option value="IBESNA~US">United States </option> 
</select> 
</td> 
<td valign="middle"> 
<img width="5px" src="images/spacer.gif"> 
</td> 
<td valign="middle"> 
<a href="javascript:setChildFrameWidth();valid()"> 
</td> 
<td valign="middle"> 
<img width="10px" src="images/spacer.gif"> 
</td> 
</tr> 
+0

這意味着''在注入的Javascript代碼上出現錯誤。「'如果你想知道如何解決它,你需要發佈一些代碼/上下文。 – sdolan 2011-05-27 02:58:39

回答

1

這只是一個猜測,但我不確定jQuery是否可以修改不存在的屬性?該選項標籤沒有「選定」屬性。

嘗試給出選項標記selected ='false',看看是否修復它。

0

我在這裏我的深度,但我相信最近的JQuery的版本已經停止/更改的支持爲attr方法。

所以我的猜測是,你正在使用一個新版本的JQuery和一些舊的Python代碼,其中包括期望JQuery的舊版本的Javascript。