使用Ruby Mechanize的表单问题

时间:2017-01-08 21:03:37

标签: ruby forms http mechanize

我正在尝试从我公司使用的网络服务中自动获取某个报告。我一直在使用Mechanize gem,我能够使用它从同一服务获得其他报告。

当我提交生成报告的表单时,我回复的所有内容都是CSV的标题。显然,它应该返回更多。

我已经使用Chrome开发工具查看每个字段的预期值,并且我已经模仿了它们。不过,无论我尝试什么,我都无法让服务返回预期值。

我该怎么办?我可能做错了什么?

编辑:有问题的代码

@loginpage = 'service_uri'

agent = Mechanize.new

login_page = agent.get @loginpage
login_form = login_page.form
email_field = login_form.field_with(name: "Email")
password_field = login_form.field_with(name: "Password")

email_field.value = 'service_login'
password_field.value = 'service_password'

page = login_form.submit

transaction_page = page.link_with(text: 'Transaction History').click


transaction_form = transaction_page.form_with(action: "/reports/transactionhistory/transactionreportexport")

transaction_form['IncludeSupplier'] = "false"
transaction_form['IncludeBrand'] = "false"
transaction_form['IncludeClassification'] = "false"
transaction_form['IncludeAttributes'] = "false"
transaction_form['IncludeScannedCode'] = "false"

transaction_form['Reason'] = ""
transaction_form['Type'] = "AddItem"
transaction_form['WarehouseId'] = "0"
transaction_form['UserLocaleInfo.Locale'] = "en-US"
transaction_form['UserLocaleInfo.TimeZoneOffset'] = "-360"

dateToday = Date.today-2
dateTomorrow = Date.today-1

transaction_form['StartDate'] = "\"#{dateToday.to_s}-T06:00:00.000Z\""
transaction_form['EndDate'] = "\"#{dateTomorrow.to_s}-T05:59:59.999Z\""

transaction_form.submit

0 个答案:

没有答案