【问题标题】:How to run a new browser instance per test with Watir?如何使用 Watir 为每个测试运行一个新的浏览器实例?
【发布时间】:2013-06-18 08:36:29
【问题描述】:

在同一次运行中执行多个测试时,我发现我得到的错误比我一个一个地执行测试时要多。当我研究这种行为时,我希望通过运行一个执行我想要的测试的 rake 任务来获得更准确的结果,但是在一个新的浏览器实例上运行每个测试,就像我一个一个地执行它们一样。这样我就可以得到与手工操作相同的结果,但避免了必须在终端一个一个启动它们的麻烦。

我在文档中搜索过这个功能,但一直没找到,我在 StackOverflow 上发现的唯一类似问题与 selenium 相关,而不是 watir。

是否可以做我正在寻找的事情?怎么样?

谢谢。

【问题讨论】:

  • 你使用什么测试框架?你能粘贴一些你的测试代码吗?
  • 我将 Ruby 与 Watir 和 Cucumber 一起使用。我看不出粘贴一些代码有什么用,因为每次运行 rake 任务时我得到的错误都是随机的。
  • 如果您不提供一些重现问题的代码,我们将无法为您提供帮助。
  • 好吧,也许我不够清楚,但我认为通过更改 rake 文件上的一些配置就足够了?我的意思是,我不是在问如何修复我的错误,我想知道的是是否可以在每次测试时使用新的浏览器实例运行 rake 任务。喜欢:rake features:development(例如,有 50 个测试)运行测试 1 -> 打开浏览器,执行测试。关闭浏览器。运行测试 2 -> 打开浏览器,执行测试。关闭浏览器。当我运行 rake 任务时发生的情况是:运行测试 1 -> 打开浏览器,执行测试,然后在同一个浏览器窗口上运行测试 2。

标签: ruby automation rake watir qa


【解决方案1】:

一般来说,您需要创建一个 Before 挂钩以在每次测试之前打开浏览器,并创建一个 After 挂钩以在每次测试后关闭浏览器(请参阅 hooks on the cucumber wiki 的更多信息)

假设您在 support/env.rb 中启动浏览器,您将使用 before 和 after 挂钩替换现有代码:

Before
  @browser = Watir::Browser.new
end

After
  @browser.close
end

【讨论】:

  • 正是我想要的。感谢您将我指向 Cucumber Wiki 上的钩子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
相关资源
最近更新 更多