使用watir-webdriver验证文本是否存在于叠加层中

时间:2014-07-30 11:03:40

标签: ruby cucumber watir

我有一个覆盖表单,我为我们的应用程序创建了一个用户。在文本字段中给出详细信息后,我单击“保存”并尝试捕获在“叠加”上显示大约一秒钟的“已成功保存的文本”。但我无法这样做,因为我收到错误提示"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

2 个答案:

答案 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