Проблема может заключаться в том, что Webrat не выполняет переадресацию с www.google.com на ваш сайт Google, указанный на вашем языке ( для получения подробной информации о перенаправлении ). Например, поскольку я нахожусь в Канаде, переход на сайт www.google.com перенаправит меня на сайт www.google.ca. В результате, когда я использую Webrat для посещения www.google.com, я вижу страницу «302 Moved». Поскольку webrat не выполняет перенаправление на страницу поиска, у вас нет доступа к текстовому полю 'q'.
Я бы попробовал метод save_and_open_page
, чтобы проверить, на какой странице вы действительно оказались. Вы можете запустить следующий скрипт (а затем открыть созданный файл) для быстрой проверки:
require "mechanize"
require 'webrat'
include Webrat::Matchers
include Webrat::Methods
Webrat.configure {|c| c.mode = :mechanize}
begin
visit('http://www.google.com/') #=>
fill_in "q", :with => 'some text'
click_button "Google Search"
rescue
save_and_open_page
end
Если вы попали на страницу «302 Перемещено», как я, то после посещения вы можете добавить следующее:
click_link "here"