2012-07-16 98 views
1

最近我開始在ruby中使用機械化,並且它工作得很完美。 今天,我試圖讓一個頁面,但出於某種原因,輸入字段不採取,請參閱下面的代碼:機械化分析錯誤

agent = Mechanize.new 
agent.add_auth(url, user, pass1, realm = nil, domain = nil) 
agent.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
#agent.log = Logger.new(STDOUT) 
page = agent.get(url) 

page.forms.first.field_with(:name => 'Login[username]').value=user 
page.forms.first.field_with(:name => 'Login[password]').value=pass2 
page = agent.submit(page.forms.first) 
page = page.link_with(:text => "Search").click 
page = page.link_with(:text => "Spiral").click 
pp page 

,即時通訊試圖解析HTML頁有這樣一行:

<input name="SpiralMatch_string" type="text" maxlength="128"> 

但出於某種原因沒有什麼,當我轉儲當前「頁」

還有一個可能有關的東西的內容,涉及到的是,有一個Java運行下面這個領域,我每次鍵入時間它的內容,p的主要內容年齡正在發生動態變化。有沒有人遇到過同樣的問題?

+1

看起來你在這裏有三個單獨的問題;如果可以構建一個演示第一個問題的HTML文件(_input字段未被採納),另一個演示第二個問題的HTML文件(當我轉儲contents_時沒有與之相關的),則_definitely_移動JavaScript-完全針對不同問題的建議。 – sarnold 2012-07-16 23:28:55

回答

0

聽起來好像頁面可能會通過javascript或ajax調用來填充。 只是因爲瀏覽器在'查看源代碼'中顯示了一些html並不意味着它實際上在響應中。 您應該使用像charles或fiddler這樣的調試代理來查看響應的真實外觀。

+0

謝謝你的回答我看到機械化不是那些javaScripts的最佳工具。我跟Watir一起工作就像一個魅力:) – 2012-07-19 18:14:18