我希望Watir等到text_field中的文本消失或被替换。但是,当我尝试这样做时:
Watir::Wait.until { browser.text_field(:id, "ContentPlaceHolder").value =! "textExample" }
它会反复在文本字段中打印字符串“false”。
如果text_field中没有textExample,我怎么能做这个问题?
答案 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