1

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

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

它不断在文本字段中重复打印字符串“false”。

在 text_field 中没有 textExample 之前,我怎样才能做到这一点?

4

1 回答 1

1

问题

您的代码的问题是

value =! "textExample"

请注意,您有一个=!. 我相信这实际上是在说“textExample”的赋值,这是错误的。所以你真的是说将 false 分配给文本字段。

解决方案 0 - 修复 =!

如果您修复=!to be的错字!=,它应该可以工作:

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
于 2013-01-21T14:01:38.017 回答