2012-03-05 83 views
1

我得到紅寶石錯誤:syntax error, unexpected tGVAR, expecting $end.

我使用機械化訪問一個網站,然後我需要將數據輸入到表格進行查詢。當我pp page網站來獲取表單信息,我得到:

#<Mechanize::Form 
<name nil> 
<method "POST"> 
<action ""> 
<fields 
... 
... 
[text:0xb43f9c type: text name: ct100$MainContent$txtNumber value: ] 
... 

我的代碼,拋出這樣的:

Check_form = page.form() 
Check_form.ct100$MainContent$txtNumber = 'J520518' 

是什麼原因造成的錯誤任何想法?預先感謝您的幫助!

+0

@AlexKliuchnikau感謝您的編輯。在我能做到之前,你已經做到了。 – user1128637 2012-03-05 14:41:17

回答

0

由於這不是有效的變量或語法上有效的方法的名稱,則應該使用另一種方法來獲取或分配值:

check_form = page.form 
check_form['ct100$MainContent$txtNumber'] = 'J520518' 

變量的形式爲@x的爲類的實例變量,@@x爲類變量,全局變量爲$x,普通變量爲x,但在任何情況下,變量都必須包含字母或下劃線,後跟任意數量的字母,數字或下劃線。 $不能出現在除開頭以外的任何地方,而當它出現時,這意味着「全局變量」,這在大多數Ruby編程中很少使用。

+0

就是這樣!它現在完美了!謝謝!!! – user1128637 2012-03-05 15:14:36

+0

作爲附加說明,以大寫字母開頭的變量被聲明爲常量,這可能不是您在此想到的。 – tadman 2012-03-05 16:55:38

+0

我假設你是指我正在輸入搜索框('J520518')的項目。因爲這是一個搜索項目(價值),這無關緊要。如果您引用括號中的項目,那就超出了我的控制範圍。我個人不會設計一個使用變量標識符作爲表單名稱的一部分的網站。現在我有一個新問題,我將作爲一個新問題提交。 (這個網站是如此痛苦)。非常感謝您的幫助!!!乾杯! – user1128637 2012-03-05 18:47:52

0

錯誤是告訴你,有一個全局變量,其中Ruby不期望。並且存在:$txtNumber是一個全局變量,但是在您的代碼中出現在該位置的全局變量沒有意義。

+0

問題是它不是全局變量,它是我試圖設置值的區域的名稱的一部分,因此我可以搜索。 – user1128637 2012-03-05 14:53:55

0

另一種方法,使之法律將

Check_form.send(:"ct100$MainContent$txtNumber=", 'J520518') 
相關問題