除非为每个测试重置浏览器,否则Rspec测试会报告标头验证的误报

时间:2014-01-04 00:18:30

标签: ruby selenium rspec

目前我正在测试一个我们无法编译的网站(出于各种其他原因)所以在此期间,我正在浏览页面中的浏览器中的编译错误。

我创建了一个简单的RSpec脚本(我是菜鸟!),它将打开网站上的所有页面并检查以确保它找不到“/'应用程序中的服务器错误”。在标头标签中。

这是有效的,但我必须弹出浏览器并退出我测试的每个页面,这使得运行起来很费时间。

如果我在脚本中用before(:each) do替换before(:all) do,那么我可以让它在浏览器中执行所有测试,除非我这样做,它会报告误报(有服务器的页面)标题中的错误仍然会通过)。

我已在@driver.get("http://www.staging.example.local/examplepage.aspx")部分之后尝试使用等待语句,但似乎无法使语法正确。

如果有人可以提供语法帮助或者有更好的建议,我们将不胜感激。

我脚本的相应部分如下所示:

  before(:each) do
    @driver = Selenium::WebDriver.for :firefox
    @driver.manage.timeouts.implicit_wait = 10
    #@driver.manage.window.maximize
    @base_url = "http://staging.environment.local"
    @accept_next_alert = true
    @verification_errors = []
  end

  after(:each) do
    @driver.quit
    @verification_errors.should == []
  end

it "should load examplepage.aspx" do
  @driver.get("http://www.staging.example.local/examplepage.aspx")
  if element_present?(:css, "h1")
  verify {(@driver.find_element(:css, "h1").text).should_not == "Server Error in '/' Application."} 
  else end
end

0 个答案:

没有答案