gpt4 book ai didi

Ruby 的 Mechanize 在选择单选按钮时会犹豫(可能是因为它的名称大写)但 Perl 的 WWW::Mechanize 工作正常

转载 作者:行者123 更新时间:2023-12-04 16:20:02 27 4
gpt4 key购买 nike

我正在尝试使用 Ruby 的 Mechanize gem 提交表单。此表单有一组名为“KeywordType”的单选按钮。各个按钮的名称类似于 rdoAny、rdoAll 和 rdoPhrase。使用 Perl 的 WWW:Mechanize,它可以正常工作:

my $result = $agent->submit_form(
form_number => 1,
fields => {
txtKeywords => 'foo bar baz',
lstLocationCode => '2100',
lstONETMajorGroup => '0',
KeywordType => 'rdoAny'
},
button => 'btnSearch'
);

但是当我这样做时 Ruby 犹豫不决:
result = page.form_with(:id => 'frmSearch') do |field|
field.txtKeywords = 'foo bar baz'
field.lstLocationCode = '2100'
field.lstONETMajorGroup = '0'
field.KeywordType = 'rdoAny'
end.submit

这会引发错误
"undefined method `KeywordType=' for #<Mechanize::Form:0x00000001c896e0> (NoMethodError)". 

我试过省略 KeywordType 字段,但后来我被发送回同一页面,没有明显的错误消息。我也试过做 field.radiobuttons.second.check 和 field.radiobuttons_with(:name => "KeywordType") 之类的事情,但无济于事。

附带说明一下,发生了什么是因为 Ruby 看到大写的单选按钮名称并认为它是一个常量?

谢谢。

最佳答案

这行得通吗?

field['KeywordType'] = 'rdoAny'

编辑:哦,我想你在这里错过了一部分:
result = page.form_with(:id => 'frmSearch') do |field|

应该是(我认为):
result = page.form_with(:id => 'frmSearch').fields.each do |field|

关于Ruby 的 Mechanize 在选择单选按钮时会犹豫(可能是因为它的名称大写)但 Perl 的 WWW::Mechanize 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22517468/

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