2012-08-14 99 views
1

我很新機械化...我仍然在學習。機械化發佈2提交

我想知道如果有人能幫我解決這個問題,我有。

我搞亂了Web開發人員工具包,通過Firefox找出窗體,但是我在做這件事時遇到了一些麻煩。

我想提交的網站有2個提交按鈕。整個頁面主要是JavaScript和jQuery代碼,從而去解決那些亂七八糟我想通了,我需要直接發佈信息,以像這樣的網頁...

@page = Mechanize.new{|agent| agent.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0a2) Gecko/20111101 Firefox/9.0a2'} 
@page.post("http://www.somepage.do",'name1' => '1','name2' => '2', 'name3' => '3') 

有在頁面上多個按鈕的顯示可用並無直接聯繫的圖像文件:

<input id="btn1" type="image" title="Search" src="images/img/common/btn.gif" name="button1"> 
    <input id="btn2" type="image" title="Search" src="images/img/common/btn.gif" name="button2"> 

當我拉的形式從網站...我看到...

ID='btn1', name = 'btn1', type ='image', 'value' = '' 

我知道,如果我有直接的聯繫......我應張貼索姆就像...

@page.post("http://www.somepage.do/button2.html", 'name1' => '1','name2' => '2', 'name3' => '3') 

但是,由於大部分頁面完成是JavaScript很難找東西。

任何幫助或建議將受到歡迎。提前致謝。

編輯:

好吧...我只是發現了一些東西......當我

@page.post("http://www.somepage.do",'name1' => '1','name2' => '2', 'name3' => '3') 

對於一些奇怪的原因 'NAME1' 和 'NAME2' 沒有得到填充到表單中。
我直接從網站上獲取這些名稱。

+0

'沒有填充到表單'是什麼意思?你不應該調用你的機械化對象頁面。使用代理是因爲頁面是不同的,代碼很混亂。 – pguardiario 2012-08-15 00:20:40

+0

對不起,我試圖概括我的代碼。我意識到,表格填寫正確,令我困惑的是,返回給我的頁面有空白表格。後來我意識到在我的最初發布到最終結果頁面之間有很多頁面。 – 2012-08-15 23:09:48

回答

1

既然您提到您正在使用Firefox,請安裝HTTPFox加載項,並使用它來分析點擊提交按鈕時提交按鈕發佈到Web服務器的內容。這樣,你可以很容易地通過填充表單的值來模擬Javascript的功能,甚至可以在表單中添加更多的輸入字段(如果javascript在提交之前添加了額外的字段)。我在網站上多次使用這種技術,在提交時做了大量的javascript表單處理。

+0

謝謝你Kibyegn。我會試試看。 – 2012-08-15 22:45:49

+0

我希望我可以在這裏舉起你10次,但不幸的是我不能。你是對的!在初始網站之間有幾個網站,因此我現在正在收集所有數據,並且似乎正確發佈。 HTTPFox非常好用。非常感謝你的幫助。 – 2012-08-15 23:08:13

+0

很高興我能幫到你。如果此答案解決了您的問題,請將其標記爲已接受。 – 2012-08-16 07:05:17