当前位置: 首页 > 知识库问答 >
问题:

无法找到未禁用的字段“用户名”(Capybara::ElementNotFind)

邢勇
2023-03-14

我正在尝试使用cucumber/rspec/capybara测试一个简单的登录表单。但是我在检测页面上的元素和进行任何类型的测试时遇到了问题。

无法找到未禁用的字段“用户名”(Capybara::ElementNotFind)

特征文件

Feature: Login
    
    Scenario: correct login credentials
        Given I am on the admin_login page
        When I fill in "username" with "thomas"

环境

require 'capybara'
require 'rspec'
require 'capybara/cucumber'
require 'rack'
require_relative '../../config'

ENV['RACK_ENV'] = 'test'

Capybara.ignore_hidden_elements = false
Capybara.app = Sinatra::Application


class Sinatra::ApplicationWorld
    include RSpec::Expectations
    include RSpec::Matchers
    include Capybara::DSL
end

World do 
    Sinatra::ApplicationWorld.new
end

网络步骤

When /^(?:|I )fill in "([^\"]*)" with "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, value, selector|
  with_scope(selector) do
    fill_in(field,visible: false, :with => value)
  end
end

超文本标记语言

<div class="container">
            <div class="row">
                <div class="col-md-4 col-md-offset-4">
                    <div class="login-panel panel panel-default">
                        <div class="panel-heading">
                            <h3 class="panel-title">Please Sign In To Pied Piper</h3>
                        </div>
                        <div class="panel-body">
                            <form role="form" action="/admin/login" method="post" label="form">
                                <fieldset label ="form" >
                                    <div class="form-group">
                                       
                                        <input label="username" class="form-control" placeholder="username" name="username" id="username" type="text" value="<%= params[:username] %>" autofocus>
                                    </div>
                                    <div class="form-group">
                                        <input class="form-control" placeholder="Password" name="password" type="password" value="<%= params[:password]%>">
                                    </div>
                                    <div class="checkbox">
                                        <label>
                                            <input name="remember" type="checkbox" value="Remember Me">Remember Me
                                        </label>
                                    </div>
                                    <button type="submit"><a class="btn btn-lg btn-success btn-block">Login</a></button>
                                    <button><a href="/" class="btn btn-lg btn-success btn-block">Return to Main Site</a></button> 
                                </fieldset>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>

共有1个答案

苏华荣
2023-03-14

我的rails应用程序也遇到了同样的问题,我解决这个问题的方法是给这个字段一个id

    <%= f.text_field :name, class: 'form-control',id:"name" %>
 类似资料:
  • 问题内容: 我有一个设计为在禁用JavaScript时仍能正常运行的应用程序,因此我想编写一些涵盖这些情况的规范。 我将Selenium(Firefox)与Capybara一起使用,并且正在注册一个禁用JavaScript的新驱动程序(通过Selenium的属性) 功能规格实际上无法禁用JavaScript。在测试过程中弹出浏览器窗口并用暂停时,我可以肯定地单击我知道需要JavaScript的项目

  • 我正在使用mongodb社区版。我在mongodb中创建了一个用户。当使用该用户初始化配置时,该用户存在并且Vertx mongodb客户端成功启动。 var mongoconfig={“连接字符串”:mongodb://127.0.0.1:27017“,“db_name”:“admin”,“username”:“username”,“password”:“password”,“authSourc

  • 我的自定义用户模型: 有没有办法指定多个?类似于这样用户就可以通过email和username登录了?

  • 我用红宝石、cucumber和水豚。 我的html看起来像这样: 基本上,我需要做的是通过点击“上传”链接上传文件: 但我一直失败,因为水豚无法找到必要的元素。。。我已经尝试了很多东西: 结果:找不到文件字段“/*[@id=\“promocodesUpload\”]/div/a/input”(Capybara::ElementNotFound) 和 结果:无法找到文件字段“输入”(Capybara

  • 我的代码:数据库中的值未更新,出现以下错误: (照明\数据库\查询异常(42S22)SQLSTATE[42S22]:找不到列: 1054未知列'用户名'在'where子句'(SQL:选择计数()作为聚合从其中=anikatabassum))和("SQLSTATE[42S22]:找不到列: 1054未知列'用户名'在'where子句'(SQL:选择计数()作为聚合从其中=anikatabassum)

  • 我目前不知道这是如何启用的,但每次我在编辑器中打开一个需要一些参数的文件时,它都会在左侧显示其名称。E、 图中显示的是“值:”。我想禁用它,这样它就不会再显示了。