2015-11-02 54 views
0

我正试图将我们的测试自动化从watir-classic迁移到watir-webdriver。 (Ruby 2.0,watir-webdriver 0.9.1) 哪个工作正常,但我们的登录过程让我头疼。如何避免驱动程序对象的丢失?

让我解释一下短会发生什么:

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

随着网站的关闭,司机也失去了,我目前我无法让驾驶者的新实例连接到网站B.

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

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

有没有人对这个好主意:

variable name="@exception" kind="instance" value="Unable to get browser" type="Selenium::WebDriver::Error::NoSuchWindowError"

我通过这样做呢?

回答

1

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

要获取可用活动窗口的列表:

@browser.windows 

您可以切换到由手柄,标题,网址,索引或收集

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

提图斯在另一个窗口,感谢您的回复。这是,再加上我需要为IE 11添加一个注册表项。 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE。请注意,FEATURE_BFCACHE子键可能存在也可能不存在,如果不存在则应该创建。在此密钥内部,创建一个名为iexplore.exe的值为0的DWORD值。01​​ 有时很简单。 –

相关问题