热到Wait.until不是text_field中的字符串,Watir?

时间:2013-01-21 13:24:39

标签: ruby-on-rails watir

我希望Watir等到text_field中的文本消失或被替换。但是,当我尝试这样做时:

Watir::Wait.until { browser.text_field(:id, "ContentPlaceHolder").value =! "textExample" }

它会反复在文本字段中打印字符串“false”。

如果text_field中没有textExample,我怎么能做这个问题?

1 个答案:

答案 0 :(得分:1)

<强>问题

您的代码存在问题

value =! "textExample"

请注意,您有一个=!。我相信这实际上是在说明&#34; textExample&#34;的 not ,这是假的。所以你真的要对文本字段赋予错误。

解决方案0 - 修复=!

如果您将=!的拼写错误修改为!=,它应该有效:

Watir::Wait.until { browser.text_field(:id, "ContentPlaceHolder").value != "textExample" }

解决方案1 ​​ - 使用wait_until

虽然您的代码可以使用固定的拼写错误。我不相信建议直接使用Watir :: Wait。您应该使用内置的wait_until方法。

browser.wait_until{ browser.text_field(:id, "ContentPlaceHolder").value != "textExample" }

或使用wait_while(取决于您的阅读偏好)

browser.wait_while{ browser.text_field(:id, "ContentPlaceHolder").value == "textExample" }

解决方案2 - 使用wait_while_present

或者,您可能希望使用Element#wait_while_present方法。

尝试做:

browser.text_field(:id => "ContentPlaceHolder", :text => "textExample").wait_while_present