можно ли преобразовать Mechanize::File в Mechanize::Page

У меня проблема с гемом Mechanize, как преобразовать Mechanize::File в Mechanize::Page,

вот мой кусок кода:

**link** = page.link_with(:href => %r{/en/users}).click

при нажатии на ссылку пользователей она переходит на страницу со списком пользователей, теперь я хочу щелкнуть первого пользователя, но не могу этого добиться, потому что ссылка возвращает Mechanize::File< /сильный> объект

Любая помощь, предложения были бы отличными, спасибо


person Said Kaldybaev    schedule 07.06.2012    source источник
comment
есть ли кто-нибудь, кто знает, как обращаться с такими ситуациями?   -  person Said Kaldybaev    schedule 07.06.2012


Ответы (2)


Mechanize использует Content-Type, чтобы определить, как следует обрабатывать ресурс. Иногда веб-сайты не устанавливают MIME-типы для своих ресурсов. Mechanize::File — значение по умолчанию для неустановленного Content-Type.

Если вы имеете дело только с 'text/html', вы можете подписаться на Джимма Стаута. предложение использовать post_connect_hooks

agent = Mechanize.new do |a|
  a.post_connect_hooks << ->(_,_,response,_) do
    if response.content_type.empty?
      response.content_type = 'text/html'
    end
  end
end
person zhon    schedule 06.12.2013

Просто разберите тело с помощью nokogiri:

link = page.link_with(:href => %r{/en/users}).click
doc = Nokogiri::HTML link.body
agent.get doc.at('a')[:href]
person pguardiario    schedule 08.06.2012