首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个ruby机械化代码抛出未定义的方法?

为什么这个ruby机械化代码抛出未定义的方法?
EN

Stack Overflow用户
提问于 2016-01-29 01:12:10
回答 2查看 848关注 0票数 0

我从一开始就在捡红宝石机械和绊倒.

为什么这个代码:

代码语言:javascript
复制
    #!/usr/bin/ruby env
    require 'rubygems'
    require 'mechanize'

    agent = Mechanize.new
    page = agent.get('http://linkedin.com/')

    #pp page

    form = page.form.first
    #form.fields.each { |f| puts f.name }
    #pp page

吐出来..。

代码语言:javascript
复制
/home/ubuntu/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mechanize-2.7.4/lib/mechanize/form.rb:217:in `method_missing': undefined method `first' for #<Mechanize::Form:0x007f9f2cf1ced0> (NoMethodError)
from 1-li.rb:10:in `<main>'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-29 01:40:19

您希望使用forms方法而不是form方法。

根据文档forms方法返回“所有表单标记的列表”,然后您可以使用方法--链接一个first方法。例如:

代码语言:javascript
复制
require 'mechanize'
mechanize = Mechanize.new
page = mechanize.get('http://www.w3schools.com/html/html_forms.asp')
forms = page.forms
forms.class              #=> Array
form = forms.first
form.class               #=> Mechanize::Form 
票数 1
EN

Stack Overflow用户

发布于 2016-01-29 03:16:02

若要获取页面上的第一个表单,请使用page.formpage.forms.first

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35075222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档