gpt4 book ai didi

ruby - 如何从第二个选择列表中获取选项值?

转载 作者:行者123 更新时间:2023-12-04 16:21:42 25 4
gpt4 key购买 nike

我有 Mechanize/Ruby 的问题。

当我选择第一个选项时,我无法获得第二个选择列表选项。如果我从 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 的模型,例如:

“奥迪-A4”、“奥迪-A1”等

我已经尝试了一些 Mechanize 的特殊技能,例如, select , tick , selected , click , present?等等,但它没有多大帮助。

如果您有任何想法/提示链接,请分享。

最佳答案

Mechanize 不支持 JavaScript,并且因为模型选择框是通过 JavaScript 填充的,所以使用选择框是行不通的。然而,http://www.parkers.co.uk/如果您禁用 JavaScript,则工作正常(尽管有所不同)。

在使用该网站时禁用浏览器中的 JavaScript,您会注意到您获得了制造商链接列表:

manufacturer links

单击制造商链接之一后,您将进入一个新页面,其中填充了模型选择。

关于ruby - 如何从第二个选择列表中获取选项值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com