我正在尝试使用命令if (@browser.text_field(:id => textbox).exists?)
验证页面上是否存在元素,但该命令甚至在页面加载之前执行,并且它总是转到else语句。我该如何处理?
答案 0 :(得分:0)
在页面加载完成之前继续Watir通常意味着页面异步加载某些内容。在这种情况下,您需要在页面实际完成加载时告诉Watir。如何执行此操作取决于页面,但一般来说,有2个选项。
异步加载内容时,许多应用程序将显示微调器或进度条。当此元素消失时,页面可被视为“已加载”。因此,如果页面上有这些类型的元素之一,您可以在继续之前等待它消失:
@browser.div(:id => 'spinners_id').wait_while_present
if @browser.text_field(:id => textbox).exists?
# Do stuff
else
# Do other stuff
end
或者,页面上可能有一个您知道最后加载的元素。在这种情况下,您可以等到该元素出现:
@browser.div(:id => 'some_last_element').wait_until_present
if @browser.text_field(:id => textbox).exists?
# Do stuff
else
# Do other stuff
end
答案 1 :(得分:-1)
@ browser.text_field(:id,textbox).when_present.set“Welcome”
这将帮助您减少不必要的等待检查代码并使代码更具可读性。