我想等待所需的文字出现。 我用:
@browser.text('required text').when_present
我收到错误:
ArgumentError: wrong number of arguments (given 1, expected 0)
如何实施?我不想只等待文本而不依赖于html元素。
答案 0 :(得分:2)
答案 1 :(得分:0)
正确的语法是@browser.text.include?('required text')
这应该可以帮助你摆脱错误。
答案 2 :(得分:0)
更好的是你可以这样做:
Watir::Wait.until(10) { @browser.text.include?('required text') }
如果未设置,则默认值为60秒,在上例中设置为10秒。
答案 3 :(得分:0)
不是为整个页面查找文本,而是为文本创建元素可能更有效。
span(:ur_name,:text => / partial string /)
或者您更喜欢定义它,然后为对象调用element level wait functions。当然,如果文本是动态的,你也可以动态地声明元素。
span(:ur_name,:text =>"#{variable_containing_text}")
page.ur_name_element.when_present
这样做的一个微不足道的好处是确保您的文本不会显示不合适,特别是如果可能的话。如果元素不支持文本定位器,您仍然可以识别元素,检查文本然后使用元素等待。
答案 4 :(得分:0)
wait_until
根据 the latest docs,使用 .wait_until( &:present? )
:
@browser.text( "required text" ).wait_until( &:present? )