如何避免驱动对象丢失?

时间:2015-11-02 14:32:39

标签: watir-webdriver pageobjects page-object-gem

我正在尝试将我们的测试自动化从watir-classic迁移到watir-webdriver。 (Ruby 2.0,watir-webdriver 0.9.1) 一般情况下工作正常,但我们的登录过程让我很头疼。

让我简短解释会发生什么:

  • 打开网站A
  • 输入登录凭据并按登录按钮。
  • 网站B以网站A关闭时的实际内容打开。

随着网站A的关闭,驱动程序也会丢失,我目前无法创建连接到网站B的驱动程序的新实例。

当我尝试创建以下pageobject的实例时,我得到:

  

变量名=" @ exception"样="实例" value ="无法获取   浏览器"类型="硒::的webdriver ::错误:: NoSuchWindowError"

我是这样做的:

  def click_loginbtn
    @@driver.button(id: 'loginBtn').click
    return ProjectList.new(@@driver)
  end

有人对此有好感吗?

1 个答案:

答案 0 :(得分:1)

您的驱动程序仍处于活动状态,您只需要访问新窗口。

获取可用活动窗口列表:

@browser.windows

您可以通过句柄,标题,网址,索引或集合切换到另一个窗口

@browser.window(title: 'My new window').use
@browser.windows.first.use