注意:看起来页面是使用Angular.js构建的,所以也许这就是造成问题的原因???我尝试了许多不同的方法来定位此页面上显示的表单: “https://use-manager.com/#!/signin”。出于某种原因,当我尝试通过常规方法找到它们时,没有找到任何形式,例如:
@form = @page.form_with(class: "signin")
甚至
@form = @page.forms.first
对我来说更奇怪的是,如果我只是这样做:
@page = @agent.get('https://use-manager.com')
然后在视图中显示页面正文:
<%= @page.body.inspect %>
表格仍无处可寻......
由于某种原因,没有什么能够找到表格......非常感谢任何提示或帮助!
答案 0 :(得分:0)
检查元素,我们发现以下内容:
<input aria-invalid="false" tabindex="0" class="ng-pristine ng-valid md-input ng-touched" id="username" name="username" data-ng-model="credentials.username" type="text">
密码:
<input id="password" class="ng-pristine ng-valid md-input ng-touched" type="password" data-ng-model="credentials.password" name="password" tabindex="0" aria-invalid="false"></input>
按钮:
<button class="md-button md-default-theme" ng-transclude="" type="submit">
在填写用户/密码后单击按钮会提交以下JSON(作为POST到https://use-manager.com/auth/signin)
{"username":"testing","password":"123"}
所以,如果我是你,我会担心填写表格,只是在登录页面上做一个JSON帖子并从那里拿走。
此处似乎还有一个备用登录页面:
有形式......
<form method="post" action="login;jsessionid=5B1002FE04FDBDC6B0D00C0949EDE75F?service=https%3A%2F%2Fwww.use-manager.com%2Fauth%2Fsignin" name="login">
<input name="action" value="do_login" type="hidden">
<input name="urlparams" value="" type="hidden">
<div class="row">
<label>Username </label>
<input id="username" class="textbox" name="username" size="32" tabindex="1" accesskey="n">
</div>
<div class="row">
<label>Password </label>
<input class="textbox" id="password" name="password" size="32" tabindex="2" accesskey="p" type="password">
</div>
<div class="remember">
<input name="rememberMe" id="rememberMe" value="true" type="checkbox">
<label for="rememberMe">Remember Me</label>
</div>
<ul>
<li><a href="http://www.use-group.com/use-manager-support.html" target="_blank">Trouble logging in?</a></li>
<li><a href="javascript:forgotpwd()">Forgot Password?</a></li>
</ul>
<div class="row btn-row">
<input name="lt" value="_c316E91C9-E9CC-CB77-9C3F-1D94EC1A5AF3_kB493A777-3227-2796-6E52-DC8BA896B36D" type="hidden">
<input name="_eventId" value="submit" type="hidden">
<input class="submit" name="bttn1" onclick="callBldg(document.forms[0].username.value)" accesskey="l" value="LOGIN" tabindex="4" type="button">
<input class="submit" name="reset" accesskey="c" value="CLEAR" tabindex="5" type="reset">
</div>
</form>