Ruby Mechanize更改<select>不在表单中的值</select>

时间:2014-11-09 01:50:41

标签: ruby web-crawler mechanize

我必须使用完全不包含表单标记的Mechanize抓取页面。此页面只有一些选择标记,其中Javascript绑定到onChange事件。我需要更改这些选择并触发onChange事件,以便能够读取页面上显示的内容。

由于Mechanize在访问字段之前需要有一个表单对象,我注定了...当页面中没有表单时,有没有办法访问字段并更改值?

很多!

Seurdge

1 个答案:

答案 0 :(得分:1)

我做了一个简单的脚本,使用Watir从没有表单的页面中提取数据:

require 'watir-webdriver'
require 'selenium-webdriver'

b = Watir::Browser.new 
b.goto 'http://www.sitexcom/data.asp'

b.select_list(:id => 'select1').select_value "1"
sleep 2
b.select_list(:id => 'select2').select_value "1"
sleep 2
b.select_list(:id => 'select3').select_value "1"
sleep 4

data = b.table(:id => 'data_table_id')

data.rows.each do |row|
    row.cells.each do |cell|
        puts cell.text
    end
end