如何从第二个 select 列表中获取选项值?
How to get option values from second select list?
我对 Mechanize/Ruby 有疑问。
当我 select 使用第一个列表选项时,我无法获得第二个 select 列表选项。如果我从 Google 中理解正确的话,那里有一些 Ajax 魔法。
目前我有这样的事情:
require 'rubygems'
require 'mechanize'
require 'nokogiri'
HOME_URL = 'http://www.parkers.co.uk/'
agent = Mechanize.new
page = agent.get(HOME_URL)
form = page.forms.first
form.field_with(:name => 'ctl00$contentHolder$topFullWidthContent$ctlManufacturerModelDropdownsNew$ddlManufacturer_Control').options.select.each do |manufacturer|
p manufacturer.text.strip
form.field_with(:name => 'ctl00$contentHolder$topFullWidthContent$ctlManufacturerModelDropdownsUsed$ddlModel_Control').options.each do |model|
p model.text.strip
end
end
我在控制台中得到这个输出:
"Select a manufacturer"
"Select a model"
"Abarth"
"Select a model"
"Alfa Romeo"
"Select a model"
"Aston Martin"
"Select a model"
"Audi"
如您所见,我没有收到任何带有 Mechanize 的模型,例如:
"Audi - A4"、"Audi - A1"、等等
我已经尝试了一些机械化的特殊技能,例如select
、tick
、selected
、click
、present?
等上,但没有太大帮助。
如果您有 ideas/tipslinks,请分享。
Mechanize 不支持 JavaScript,并且由于模型 select 盒子是通过 JavaScript 填充的,因此使用 select 盒子是行不通的。但是,如果禁用 JavaScript,http://www.parkers.co.uk/
可以正常工作(尽管有所不同)。
在使用该站点时在浏览器中禁用 JavaScript,您会注意到您会获得制造商链接列表:
单击其中一个制造商链接后,您将进入一个新页面,其中填充了 select 型号。
我对 Mechanize/Ruby 有疑问。
当我 select 使用第一个列表选项时,我无法获得第二个 select 列表选项。如果我从 Google 中理解正确的话,那里有一些 Ajax 魔法。
目前我有这样的事情:
require 'rubygems'
require 'mechanize'
require 'nokogiri'
HOME_URL = 'http://www.parkers.co.uk/'
agent = Mechanize.new
page = agent.get(HOME_URL)
form = page.forms.first
form.field_with(:name => 'ctl00$contentHolder$topFullWidthContent$ctlManufacturerModelDropdownsNew$ddlManufacturer_Control').options.select.each do |manufacturer|
p manufacturer.text.strip
form.field_with(:name => 'ctl00$contentHolder$topFullWidthContent$ctlManufacturerModelDropdownsUsed$ddlModel_Control').options.each do |model|
p model.text.strip
end
end
我在控制台中得到这个输出:
"Select a manufacturer"
"Select a model"
"Abarth"
"Select a model"
"Alfa Romeo"
"Select a model"
"Aston Martin"
"Select a model"
"Audi"
如您所见,我没有收到任何带有 Mechanize 的模型,例如:
"Audi - A4"、"Audi - A1"、等等
我已经尝试了一些机械化的特殊技能,例如select
、tick
、selected
、click
、present?
等上,但没有太大帮助。
如果您有 ideas/tipslinks,请分享。
Mechanize 不支持 JavaScript,并且由于模型 select 盒子是通过 JavaScript 填充的,因此使用 select 盒子是行不通的。但是,如果禁用 JavaScript,http://www.parkers.co.uk/
可以正常工作(尽管有所不同)。
在使用该站点时在浏览器中禁用 JavaScript,您会注意到您会获得制造商链接列表:
单击其中一个制造商链接后,您将进入一个新页面,其中填充了 select 型号。