将登录表单与 Mechanize 结合使用

2024-03-07

我知道 Stackoverflow 上有与此非常相似的帖子,但我似乎仍然无法弄清楚我的尝试出了什么问题。

# login to the site 
mech.get(base_URL) do |page|
  l = page.form_with(:action => "/site/login/") do |f|
    username_field = f.field_with(:name => "LoginForm[username]")
    username_field.value = userName
    password_field = f.field_with(:name => "LoginForm[password]")
    password_field.value = password
    f.submit
  end
end

这是我的错误:

rb:18:in `block (2 levels) in <main>': undefined method `field_with' for nil:NilClass (NoMethodError)

这是 HTML

<div class="bucketbody">

    <div class="form padding10">
    <form id="login-form" action="/site/login" method="post">
        <div class="row">
            <p class="note float_right">Fields with <span class="required">*</span> are required.</p>
            <label for="LoginForm_username" class="required">Email address <span class="required">*</span></label>              <input class="width_66per" autofocus="" name="LoginForm[username]" id="LoginForm_username" type="text">                         </div>

        <div class="row">
            <label for="LoginForm_password" class="required">Password <span class="required">*</span></label>               <input class="width_66per" name="LoginForm[password]" id="LoginForm_password" type="password">                          </div>

                    <div class="row rememberMe nolabel">
            <span class="field"><input id="ytLoginForm_rememberMe" value="0" name="LoginForm[rememberMe]" type="hidden"><input name="LoginForm[rememberMe]" id="LoginForm_rememberMe" value="1" type="checkbox">                <label for="LoginForm_rememberMe">Remember me on this computer</label>                              </span>
        </div>

        <p class="note"><a href="http://test.XXXXXXXX.com/user/reset">Forgot your password?</a></p>

        <div class="row buttons" style="padding-left: 0px;">
            <input class="pushButton" name="yt0" value="Login" type="submit">           </div>

    </form>     </div><!-- form -->

</div>

p page

#<Mechanize::Page
 {url #<URI::HTTP:0x225ce70 URL:http://xxxxxx.com/>}
 {meta_refresh}
 {title "xxxxxxxxxxx | xxxxxxxxx"}
 {iframes}
 {frames}
 {links
  #<Mechanize::Page::Link "\r\n                        " "/">
  #<Mechanize::Page::Link "About xxxxxx" "/features">
  #<Mechanize::Page::Link "xxxxx Overview" "/features">
  #<Mechanize::Page::Link "xxxxxxx for Associations" "/associations">
  #<Mechanize::Page::Link "xxxxxx For Education" "/education">
  #<Mechanize::Page::Link "FAQ" "/faq">
  #<Mechanize::Page::Link "About Us" "/aboutus">
  #<Mechanize::Page::Link "About Us" "/aboutus">
  #<Mechanize::Page::Link "News & Events" "/news-events">
  #<Mechanize::Page::Link "Environmental Commitment" "/environment">
  #<Mechanize::Page::Link "Our Team" "/ourteam">
  #<Mechanize::Page::Link "The xxxxxxxxxx" "/xxxxxxxxxx">
  #<Mechanize::Page::Link "Free Trial" "/freetrial">
  #<Mechanize::Page::Link "Contact" "/contacts">
  #<Mechanize::Page::Link "Contact us" "/contacts">
  #<Mechanize::Page::Link
   "xxxxxxxxxx"
   "http://www.xxxxxxxx.com/services/web-services/">
  #<Mechanize::Page::Link
   "[email protected] /cdn-cgi/l/email-protection"
   "mailto:[email protected] /cdn-cgi/l/email-protection">
  #<Mechanize::Page::Link xxxxxx" "http://www.xxxxxxxxx.com/">
  #<Mechanize::Page::Link
   "Technology Association of Oregon"
   "http://www.techoregon.org/">
  #<Mechanize::Page::Link "" "http://www.terrapass.com/">
  #<Mechanize::Page::Link "" "http://www.arborday.org/">}
 {forms}>

你让它变得比需要的更复杂:

page = mech.get base_URL

form = page.form # page.forms[1], etc.
form['LoginForm[username]'] = userName
form['LoginForm[password]'] = password

l = form.submit form.button
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将登录表单与 Mechanize 结合使用 的相关文章

  • 在企业代理内的 Windows 中安装 Ruby 2.4.1。 MSYS2更新失败

    我正在使用 ruby 安装程序rubyinstaller 2 4 1 2 x64 exe https rubyinstaller org downloads archives 安装ruby 2 4 1 on windows 10 就成功了并
  • 不同金额的 Stripe 订阅计划

    我正在为一家慈善机构制作一份捐赠表格 他们要求提供每月捐赠计划 用户可以选择他们想要捐赠的任何金额 我知道我可以制定个人计划 即 如果他们说每月捐款 5 美元 10 美元或 20 美元 我可以制定三个不同的计划并向用户订阅它们 有没有办法避
  • Guard 不会加载 WDM

    我正在学习 Michael Hartl 的 Rails 教程 到目前为止该教程非常出色 我在高级设置一章中 他以有利于 TDD 的方式配置 Rails 环境 我安装了 Guard 并且通过运行我在 spec 文件夹中的测试 它一直正常运行
  • 什么是“太聪明”的 Ruby 代码示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在与一些程序员朋友进行讨论 他们说他们看到 Ruby 程序员 尤其是 编写了很多 太聪明 的代码 所以我想知道那会是什么样子 我指
  • 类、模块、它们的特征类和方法查找

    我们来开公开课吧Module并向其中添加一个方法 class Module def foo puts phew end end 我可以通过这样做来调用这个方法 Class foo 这是可以理解的 因为类Class is Class 其超类是
  • 转储 YAML 时如何强制使用双引号?

    我有一个小脚本来自动化 YAML 文件中的一些操作 我读取原始 YAML 文件并将其转换为哈希 然后dump http ruby doc org stdlib 1 8 6 libdoc yaml rdoc YAML html method
  • 如何在 Rails 控制器中调用通道方法?

    我有一个订阅用户的 ActionCable 方法 如果启动新的 convo 我也希望用户订阅新频道 我无法找出在控制器中调用通道方法的正确语法 更新 问题是消息在发送时附加到聊天框 但是当发送第一条消息时 Websocket 连接尚未建立
  • Rails:CSRF 令牌不工作但已设置

    我在 Heroku 上有我的 Rails 3 应用程序 当我发送银行信息时 我得到 WARNING Can t verify CSRF token authenticity但我的 CSRF 令牌已设置 https gist github c
  • 通过推送通知唤醒

    Suppose 有一些对象 例如 一个数组a 和依赖于对象的条件 例如 a empty 当前线程以外的某些线程可以操作该对象 a 因此条件评估值的真实性会随着时间的推移而变化 如何让当前线程在代码中的某个时刻休眠 并在条件满足时通过推送通知
  • 如何向 Time.now 添加两周?

    如何在 Ruby 中向当前 Time now 添加两周 我有一个使用 DataMapper 的小型 Sinatra 项目 在保存之前 我有一个字段填充了当前时间加上两周 但未按需要工作 任何帮助是极大的赞赏 我收到以下错误 NoMethod
  • Ruby 枚举器中的“break”与“raise StopIteration”

    如果我使用 Ruby Enumerators 来实现生成器和过滤器 generator Enumerator new do y x 0 loop do y lt lt x x 1 break if x gt CUTOFF end end l
  • 在我的 ramaz 应用程序上显示 £ 符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”

    显示时收到 不兼容的字符编码 CP850 和 UTF 8 我的 ramaz 应用程序上的符号 我怎样才能摆脱这个错误 我的 head 标签中有 UTF 8 元标签 当我输入 用键盘输入符号 看 我已将以下代码放入我的 ruby 文件中 但它
  • 如何在 Rails 4 中使用 params.require

    我有一个像这样的私有方法 用于有四个字段的注册表单 firstname email password and confirm password 我不知道如何检查password confirmation def user params pa
  • Rails 4:资产未在生产中加载

    我正在尝试将我的应用程序投入生产 但图像和 CSS 资源路径不起作用 这是我目前正在做的事情 图像资源位于 app assets images image jpg 样式表位于 app assets stylesheets style css
  • Rails 控制台无法运行

    rbenv 红宝石版本 2 6 6 导轨版本 5 1 4 我正在较旧的代码库中工作 ruby 2 6 6 rails 5 4 1 这是我每天使用的代码库 我必须通过 rbenv 下载一个新的 ruby 版本作为单独的存储库 这样做在我的旧代
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • ruby 中的 #encode 和 #force_encoding 有什么区别?

    我真的不明白之间的区别 encode and force encoding在 Ruby 中String班级 我明白那个 kam force encoding UTF 8 将迫使 kam 是UTF 8编码 但是怎么样 encode encod
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • Rails:named_scope、lambda 和块

    我认为以下两个是等效的 named scope admin lambda company id conditions gt company id company id named scope admin lambda do company

随机推荐

  • 将响应保存为文件

    我有返回的 WebAPI 方法HttpResponseMessage with csv文件内容 private static HttpResponseMessage FileAsAttachment string file var now
  • 使用 Alexa 技能进行 Node JS 回调

    我有一个包含请求调用的模块 但它似乎没有被执行 var request require request var Alexa require alexa sdk var APP ID
  • r-插入符包错误-createDataParition 没有观察到

    当我尝试运行时出现以下错误createDataPartition在插入符号中 Error in createDataPartition data1 p 0 8 list FALSE y must have at least 2 data p
  • jQuery 对话框主题和样式

    如何更改 jQuery 对话框标题栏的背景颜色 我看过themeroller 但它似乎对我不起作用 Thanks 您可以通过修改 ui dialog titlebar CSS 类来更改它 但我强烈建议您使用主题滚轮工具 http jquer
  • 我可以将 Sailsjs 部署到 AppHarbor 或 Heroku 吗?

    AppHarbor 使用 iisnode 支持 Node 我现在可以将 Sails js 应用程序部署到 AppHarbor吗 如果可以 如何部署 老实说 我不知道我在节点部署方面做了什么 但我正在尝试遵循我在网上阅读的内容 当我将代码部署
  • ACAccountCredential 为 oauthToken 返回 null

    我通过以下方式访问用户的 Facebook accStore requestAccessToAccountsWithType fbAccountType options options completion BOOL granted NSE
  • 如何在本地使用 Lambda Layers 测试 AWS SAM 应用程序?

    我正在使用 AWS SAM 和 API Gateway 创建一个 API 以将请求传递到多个 Lambda 处理程序函数 我在它们之间共享代码 因此我想使用 Lambda 层来避免重写冗余代码 在创建任何实际的 AWS 资源之前 我首先在本
  • Vertex AI 模型批量预测、引用云存储上的现有模型和输入文件的问题

    我正在努力正确设置 Vertex AI 管道 该管道执行以下操作 从 API 读取数据并存储到 GCS 并作为批量预测的输入 获取现有模型 Vertex AI 上的视频分类 使用点 1 的输入创建批量预测作业 正如您将看到的 我对 Vert
  • 移动开发 - 本机 VS 跨平台 VS JavaScript [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • React Typescript:看起来您正在尝试使用 TypeScript,但没有安装 TypeScript

    我想创建一个 React 应用程序 并且想在这个应用程序中使用 typescript 首先我访问了 React 网站 以便使用 typescript 创建一个应用程序 我发现我必须先将此指令放入终端中 npx create react ap
  • 测试存储过程的最佳方法是什么?

    像许多要求所有访问都通过存储过程进行的公司一样 我们似乎有很多业务逻辑被锁定在存储过程中 这些东西实在是很难测试 而且有些已经变得愚蠢又长了 是否有人拥有一套最佳实践 可以让您更轻松地自信地测试这些东西 目前 我们维护着 30 个左右的 问
  • WPF 将文件从 Windows 资源管理器拖放到 TreeView 上

    我正在尝试制作一个非常简单的程序 或者我认为的程序 将文件从桌面 资源管理器拖放到 wpf 树视图上 此示例中的树视图很简单 因此我可以隔离遇到的拖放问题 我已经将所有地方的AllowDrop设置为True 但我仍然无法触发Drop或Dra
  • 如何在不离开页面的情况下更改浏览器中的 URL?

    我现在正在编写一个复杂的 AJAX 应用程序 整个网站都有干净的 URL 目前 PHP 为每个页面创建基本布局 但我不想在用户单击链接时离开每个页面 并且我不想在 URL 中包含哈希 因为它不会 与网站的其余部分不相符 我知道这个问题以前在
  • 从 2d numpy 数组的每一行中选择随机非零元素

    我有一个二维数组 a array 5 0 1 0 0 1 3 5 2 3 0 0 4 0 2 4 3 2 0 3 和一维数组 b array 1 2 1 2 2 which b 告诉我们要从数组的每一行中选择多少个非零元素a 例如 b 0
  • Notepad++ 缓存文件位置

    在最新版本的 Notepad 上 当应用程序关闭时 重新启动应用程序时会保留未保存的文件 我认为这些文件缓存在临时文件中 该文件的位置是什么 谢谢 我自己注意到了 并在里面找到了文件backup文件夹 您可以检查它在哪里使用菜单 设置 gt
  • 碰撞检测布料js

    我正在使用 Fabric js 我使用以下函数将图像放在画布上 当我单击画布时 图像会放置在该位置 我想知道是否有方法可以检查天气 那里已经存在某些东西我点击的位置 特别是如果有其他图像或没有 document getElementById
  • PHP 数组和 HTML 表单下拉列表

    我有一个名为 categories 的简单 PHP 数组 如下所示 Array Closed gt P1000 Open gt P1001 Pending gt P1002 In Progress gt P1003 Requires App
  • 如何使用 swift 调用 size_t os_proc_available_memory(void)

    我从来没有从 Swift 调用 Obj C 函数 而且我看到的大部分信息都是用于导入框架等 所以我很难理解如何获取我需要的数据 我想获得我的应用程序可用的总可用内存 我所能找到的就是https developer apple com doc
  • 如何使列表框水平滚动

    我有一个包含长字符串的列表框 The beginning is not all that relevant for the user which is why I d like to make the listbox scroll auto
  • 将登录表单与 Mechanize 结合使用

    我知道 Stackoverflow 上有与此非常相似的帖子 但我似乎仍然无法弄清楚我的尝试出了什么问题 login to the site mech get base URL do page l page form with action