首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webrat自动填充表单域

webrat自动填充表单域
EN

Stack Overflow用户
提问于 2011-01-14 17:40:13
回答 3查看 707关注 0票数 10

我正在学习如何使用cucumber/webrat编写测试。我的一个测试场景设置为测试表单验证(保留字段为空)。奇怪的是,我没有用fill_in填充的字段被设置为字段的name属性。这只会在我运行cucumber时发生,而在使用浏览器时不会发生。

我使用的步骤很简单:

代码语言:javascript
复制
When /^I submit the form$/ do
  # Not filling in the 'Name' field here
  fill_in 'Description', :with => 'This is a description'
  click_button 'Save'
end

运行使用上述步骤的场景后,我可以看到文本字段"Name“被设置为"name”,而不是空的。如果我在该字段中填入空格或nil,也会出现这种情况

代码语言:javascript
复制
fill_in 'Name', :with => ''

我正在测试的表单非常简单:

代码语言:javascript
复制
<form action="/item/create" method="post">
  <div>
    <label for="ItemName">Name</label>
    <input type="text" name="name" id="ItemName" />
  </div>
  <div>
    <label for="ItemDescription">Description</label>
    <textarea name="description" id="ItemDescription"></textarea>
  </div>
  <input type="submit" value="Save" />
</form>

你知道为什么会发生这种事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-04 21:46:36

我猜你使用的是带有机械适配器的Webrat,对吗?如果是这样的话,我发现自己对同样的问题感到非常沮丧。事实证明,这是Webrat传递表单字段值以实现机械化的一个错误。您可以在此处找到详细信息和补丁:https://webrat.lighthouseapp.com/projects/10503/tickets/384-webrat-does-not-pass-empty-form-fields-correctly-to-mechanize

或者,如果你不想使用Webrat的补丁版本,一种稍微不太理想的解决办法是用空格(‘')代替fill_in,并确保在考虑字段是否正确填充时,应用程序的输入验证会修剪或忽略空格。

不幸的是,似乎有许多这样的问题,这些问题贡献了一些补丁,这些补丁还没有合并到“官方”Webrat代码库中。大约一个半月前,我给作者发了一封电子邮件,询问他是否还在维护它,如果没有,请考虑给那些愿意维护它的人打电话,因为很多人仍然在使用它。到目前为止,我还没有收到回复。

票数 2
EN

Stack Overflow用户

发布于 2011-02-03 12:02:48

您可以尝试的一件事是确保在该字段上关闭了自动完成功能(autocomplete=" off "),以查看这是否会影响结果。

代码语言:javascript
复制
<form action="/item/create" method="post">
  <div>
    <label for="ItemName">Name</label>
    <input type="text" name="name" id="ItemName" autocomplete="off" />
  </div>
  <div>
    <label for="ItemDescription">Description</label>
    <textarea name="description" id="ItemDescription"></textarea>
  </div>
  <input type="submit" value="Save" />
</form>
票数 1
EN

Stack Overflow用户

发布于 2011-02-04 13:18:47

你能在步骤中尝试这样的东西吗?

给定名称%{我用""}填写“”

“”

或者更好的是,在功能文件中使用

给定我填写“

with”时的名称。

我也建议搬到卡皮巴拉去,你可以这样做:

https://github.com/jnicklas/capybara/issues/issue/219

这将允许您为selenium测试设置Firefox配置文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4689690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档