通过CSS选择器从Mechanize结果中选择正确的表单

时间:2015-06-19 13:41:01

标签: ruby forms nokogiri mechanize

所以我使用Mechanize来获取页面的表单列表。表单标识可能因网站而异,因此我需要更稳定的内容,例如选择器。

有没有办法可以使用简单的CSS选择器从Mechanize提供的表单列表中选择正确的表单?

2 个答案:

答案 0 :(得分:0)

是。 Mechanize返回的页面对象是Nokogiri文档,因此您可以使用Nokogiri的所有方法在DOM中查找节点。

searchat是通用方法,都采用CSS或XPath选择器。 at相当于search('some selector').first。我绝大多数时候都需要使用这两个节点来寻找节点。 cssxpath也是特定于选择器类型的,at等同于at_cssat_xpath

考虑以下代码:

require 'mechanize'

agent = Mechanize.new
page = agent.get('http://www.example.net')
page.class # => Mechanize::Page
page.at('title').class # => Nokogiri::XML::Element
page.at('title').text # => "Example Domain"

此示例获取页面的<title>,但您可以轻松地插入如何从您正在使用的DOM中获取特定表单。

答案 1 :(得分:0)

您可以使用parfor方法将表单与form_node元素匹配:

<form>