我一直在研究一个Ruby脚本,它将数据输入搜索字段,然后需要单击enter按钮。通过查看“pp”,我的数据正确地输入到搜索字段中。我遇到的问题是点击“输入”按钮。正在发生的事情是它没有向前发展只是刷新当前的屏幕。当我通过IE手动访问有问题的网站时,输入搜索数据并点击键盘上的Enter键,它不会滚动到搜索屏幕;我必须在输入上单击鼠标才能使其向前移动。如果我使用Chrome并使用键盘输入相同的任务,则会打开一个新标签。如何以编程方式继续前进?
这是我的代码:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
page = agent.get('https://somewebsite.com')
check_form = page.form
check_form['ct100$MainContent$txtNumber'] = 'J520518'
pp page
page = agent.submit(check_form, check_form.buttons.first)
pp page
page.links.each do |link|
puts link.text
end
这是输出中的snippit:
...
<forms
#<Mechanize::Form
<name nil>
<method "POST">
<action "">
<fields
...
[field:0xb627a0 type: name:ct100$MainContent$txtNumber value: J520518]>
...
<buttons
[submit:0xb6d8ac type: submit name: ct100$MainContent$btnEnter value: Enter]
}>}>
...
<forms
#<Mechanize::Form
<name nil>
<method "POST">
<action "">
<fields
...
[field:0xb627a0 type: name:ct100$MainContent$txtNumber value: ]>
...
<buttons
[submit:0xb6d8ac type: submit name: ct100$MainContent$btnEnter value: Enter]
一如既往,非常感谢你的帮助!
答案 0 :(得分:1)
好的,我可以使用 watir 进行解析,因为我使用的是IE。然后我能够使用 nokogiri 来解析最后一页。最终,我使用上面的代码处于正确的轨道上,但 Mechanize 目前无法处理JavaScript。由于watir是浏览器的驱动程序,而不是像它自己的浏览器那样,它能够处理JavaScript。我希望这有助于任何有关此问题的人。
答案 1 :(得分:0)