gem" watir"," 6.9"
尝试执行此代码
2.times { next_button.when_present.click }
或者像这样
2.times { next_button.wait_until(&:present?).click }
收到此错误
Watir::Exception::UnknownObjectException: unable to locate element: #<Watir::Button: located: false; {:class=>"course-player__content-next-btn", :tag_name=>"button"}>
但是我告诉Watir在点击之前等待一个元素!
发生了什么?我不是睡觉的粉丝,也不想使用它们!
谢谢!
P.S。找到并确定了next_button。 该代码适用于睡眠,并且默认情况下不会等待元素。
答案 0 :(得分:1)
你可以尝试例如 - 如果元素在gui中可见并且存在于html =继续单击
browser.element(class: button_ok).wait_until_present
browser.element(class: button_ok).click
或 - 如果元素在html中存在且在gui中可见=继续单击
browser.element(class: button_ok).present?
browser.element(class: button_ok).click
或 - 如果html中存在元素=继续单击
browser.element(class: button_ok).exists?
browser.element(class: button_ok).click
或 - 等到元素不可见(消失)
browser.element(class: button_ok).wait_while_present
browser.element(class: button_ok).click
希望它会对你有所帮助。
当然button_ok是可变的 button_ok =“path”
答案 1 :(得分:0)
从6.15版开始,#wait_while_present
和#wait_until_present
已弃用。对于版本6.2至6.14,这些方法的行为或与.wait_until(&:present?)
和.wait_while(&:present?)
略有不同。情况不再如此,这些方法也不再使用。