使用Capybara从文本字段中删除内容

问题描述 投票:13回答:5

我正在编写一个脚本,该脚本使用Capybara填充文本字段,但是在填充字段之前,我想确保这些字段为空并且不会自动填充文本。基本上,我在寻找

的反义词
(Object) fill_in(locator, options = {})    #empty_content_of? delete?

在这里找到:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions。建议吗?

automation capybara
5个回答
12
投票

苦苦挣扎之后,我问了一个同事,解决方法是使用以下方法:

fill_in(locator, with: "")

因此,例如:

fill_in "Name", with: ""

这很合理,可能对许多人来说很直观,但是我很困惑,无法找到答案,所以我想我会发表有关它对任何人都有帮助的事情。


8
投票

您可以使用本地硒绑定来清除输入字段,而无需填写空字符串

element = find('locator')
element.native.clear

我更喜欢此选项,而不是fill_in

此外,如果您考虑使用它,则只能通过标签或名称来查找定位器,因此,如果它没有标签或名称,则仍然必须使用find


7
投票

仅对我而言,此解决方案有效:

fill_in('Foo', with: 'bar', fill_options: { clear: :backspace })

我在前端有Vue.js。


3
投票

对于React,您必须做更多的事情。 fill_in field, with: ''执行native.clear。这在React中不能很好地发挥作用。与native.clear不同。因为它会在键入文本之前输入fill_in field, with: 'some text'

我遇到了arguments[0].value = ''的问题。我已经解决的是:

react-datetime

0
投票

一种对我有效且始终可靠的解决方案:

react-datetime

用水豚模仿用户的行为,这对我来说似乎也是正确的方法。

© www.soinside.com 2019 - 2024. All rights reserved.