2011-04-20 55 views
5
require 'mechanize' 
agent = Mechanize.new 
login = agent.get('http://www.schoolnet.ch/DE/HomeDE.htm') 
agent.click login.link_with text: /Login/ 

而且我得到了Mechanize::UnsupportedSchemeError在ASP页面上机械化断开页面

回答

9

机械化did'nt支持JavaScript,但你可以搜索文本框的形式分配的搜索字词添加到它,并使用机械化

form = page.forms.first 
form.add_field! "Field_name here","BotM$ucUser$ucUser2Col$cmdLogin" 
page = form.submit 
+0

你们能不能进一步置评什么这样做提交表单? – holaSenor 2012-01-08 18:27:25

+2

供将来参考,我必须为WebForm_DoPostBackWithOptions设置的字段名称为“__EVENTTARGET”和“__EVENTVALUE”。所以它看起来像:'f.add_field! “__EVENTTARGET”,“dnn $ ctr409 $ ManageUsers $ Password $ cmdUpdate”'和 'f.add_field! “__EVENTARGUMENT”, “”' – Jonah 2012-11-04 16:43:14

1

有问题的链接运行javascript函数。

<a href="javascript:__doPostBack('BotM$ucUser$ucUser2Col$cmdLogin','')" id="BotM_ucUser_ucUser2Col_cmdLogin">Login</a> 

机械化不支持JavaScript链接。其他人建议使用和谐。

检查https://github.com/mynyml/harmony