我有一个覆盖表单,我为我们的应用程序创建了一个用户。在文本字段中给出详细信息后,我单击“保存”并尝试捕获在“叠加”上显示大约一秒钟的“已成功保存的文本”。但我无法这样做,因为我收到错误提示"Element is no longer attached to the DOM (Selenium::WebDriver::Error::StaleElementReferenceError)"
。
我使用了以下代码:
if($browser.div(:class=>"validation-summary-valid").exists?)
message=$browser.div(:class=>"validation-summary-valid").li.text
if(message=="Saved Sucessfully")
puts("Save action complete")
else
fail("fail")
end
end
答案 0 :(得分:0)
在capybara中,我会使用(内)到Dom中的message元素的范围,然后使用have_content
within('#Browser div')do
page.should have_content('Saved Successfully')
end
希望这有助于在watir中尝试类似的东西
答案 1 :(得分:0)
我从这种情况中了解到,当你点击保存瞬态消息的那一刻出现在UI上并且需要进行检查。
在这种情况下,下面的方法应该可以正常工作,
# the browser waits for 20 s until the element is present(exists+visible) on the UI
$browser.div(:class=>"validation-summary-valid").wait_until_present(20).li.text