我正在尝试使用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>
我的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、 图中显示的是“值:”。我想禁用它,这样它就不会再显示了。