2012-12-12 4 views
2

다른 양식/선택 목록에서 작동하고 있음을 알고 있습니다. 이 특별한 하나는 아약스로 보이지 않습니다. 누구든지 이것에 대해 비추어 줄 수 있습니까?Ruby Mechanize - 특정 선택 목록을 가져올 수 없습니다.

# encoding: UTF-8 
require 'rubygems' 
require 'mechanize' 
require 'open-uri' 

agent = Mechanize.new 
page = agent.get('http://espn.go.com/nba/team/transactions/_/name/bos/boston-celtics') 

form = page.form_with(:class => "js-goto") 
fields = form.field_with(:class => "tablesm") 

puts fields 

이 selectList의 양식 필드와는 쓸모가 만드는 이름 속성을 가지고 있지 않는 #<Mechanize::Form::SelectList:0x007ffdd3930138>

+0

확인하기 만하면 올해를 변경하려고하십니까? – sunnyrjuneja

+0

나는 올해까지 페이지를 탐색하려고하지만 선택 목록을 등록하지 않습니다. 그게 문제가되는 곳인 –

답변

2

처럼 뭔가를 반환해야합니다. 노코 기리 스타일을 탐색하는 데 필요한 데이터를 계속 얻을 수 있습니다.

page.at('select.tablesm option[text()="2008"]')[:value] 
#=> "http://espn.go.com/nba/team/transactions/_/name/bos/year/2008/boston-celtics" 
+0

입니다. 폼 필드에'name' 속성이 없으면 기계화되지 않습니다. –

+0

기계화는 nokogiri를 사용하므로 mechanize가 생성 한 페이지 객체에서 위의 것을 사용할 수 있습니다. – sunnyrjuneja

+2

Mechanize는 사용할 수 있지만 Mechanize :: Form은 사용할 수 없습니다. 양식은 제출되지 않으며, onchange 자바 스크립트 이벤트는 대신 화재를 발생 시키므로 양식과 같은 것을 처리 할 수 ​​없습니다. – pguardiario

관련 문제