Ruby 清除输入字段并使用Watir输入新信息?(鲁比,瓦蒂尔)

Ruby 清除输入字段并使用Watir输入新信息?(鲁比,瓦蒂尔),ruby,watir,Ruby,Watir,非常肯定你必须使用。清楚,或者可能不清楚,因为它似乎对我不起作用,也许我只是执行错误,我不确定 例如: browser.div(:id => "formLib1").clear.type("input", "hi") 有人能告诉我如何简单地清除一个字段,然后输入一个新字符串吗?假设我们讨论的是一个文本字段(即您没有试图清除/输入div标记),那么.set()和.value=方法会在输入值之前自动清除文本字段 因此,以下其中一项可行: browser.text_field(:id, 'yo

非常肯定你必须使用。清楚,或者可能不清楚,因为它似乎对我不起作用,也许我只是执行错误,我不确定

例如:

browser.div(:id => "formLib1").clear.type("input", "hi")

有人能告诉我如何简单地清除一个字段,然后输入一个新字符串吗?

假设我们讨论的是一个文本字段(即您没有试图清除/输入div标记),那么
.set()
.value=
方法会在输入值之前自动清除文本字段

因此,以下其中一项可行:

browser.text_field(:id, 'yourid').set('hi')
browser.text_field(:id, 'yourid').value = 'hi'

请注意,通常首选使用
.set
,因为
.value=
不会触发事件。

我也有类似的问题,并且由于某些原因,
.set()
value=
对于元素不可用

该元素是一个Watir::HTMLElement:

[2] pry(#<Object>)> field.class
=> Watir::HTMLElement

field.methods.grep /^(set|clear)$/
=> []

我遇到了类似的问题,并且由于某种原因,
.set()
.value=
不适用于该元素

该元素是一个Watir::Input:

browser.input(:id => "formLib1").to_subtype.clear
清除字段后,我可以输入文本

browser.input(:id => "formLib1").send_keys "hi"

请注意,一旦将
Watir::Input
转换为
Watir::TextField
,就可以调用
set
方法-ie
browser.Input(:id=>“formLib1”)。将其转换为_subtype.set(“hi”)
。这将消除手动调用
clear
send_key
的需要,该键对我有效,但尚未
到_subtype.clear
(值不变)。元素来自
iframe
,但我仍然不明白为什么
set
/
value=
不可用。@JustinKo:这是有道理的,但对我来说,我仍然必须发送
clear
,以便
set
工作。我不为自己工作(元素来自
iframe
,但我没有真正找出原因)
browser.input(:id => "formLib1").send_keys "hi"