Позвольте мне подготовить почву для того, чего я пытаюсь достичь. На уроке физики, который я посещаю, моя учительница всегда любит хвастаться тем, как невозможно обманывать в ее классе, потому что все ее задания выполняются через WebAssign. WebAssign работает следующим образом: все получают одинаковые вопросы, но числа, используемые в вопросе, являются случайными переменными, поэтому у каждого учащегося разные числа, и, следовательно, разные ответы. Поэтому я писал сценарии ruby, чтобы решить вопрос для людей, просто вписав ваши конкретные числа.
Я бы хотел автоматизировать этот процесс с помощью механизации. Раньше я много раз использовал механизацию, но у меня возникают проблемы при входе на сайт. Я отправлю форму, и она вернет ту же страницу, на которой я только что был. Вы можете взглянуть на исходный код сайта на http://webassign.net,, и я также попытался использовать логин на http://webassign.net/login.html, но тоже не повезло.
Позвольте мне дополнить это рубиновым кодом, который не выполняет то, что я хочу:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://www.webassign.net/login.html")
form = page.forms.last
puts "Enter your username"
form.WebAssignUsername = gets.chomp
puts "Enter your password (Don't worry, we don't save this)"
form.WebAssignPassword = gets.chomp
form.WebAssignInstitution = "trinityvalley.tx"
form.submit #=> Returns original page
Если кто-то действительно заинтересован в том, чтобы заставить это работать, я был бы более чем счастлив выслать им рабочее имя пользователя и пароль.