Testing 量角器-测试Oauth2时切换到facebook登录屏幕

Testing 量角器-测试Oauth2时切换到facebook登录屏幕,testing,oauth-2.0,protractor,end-to-end,e2e-testing,Testing,Oauth 2.0,Protractor,End To End,E2e Testing,我正在尝试向使用oauth2的应用程序编写e2e登录测试。 单击facbook登录时,另一个窗口打开(facebook登录)。我正在尝试在那里输入凭据。 我目前正在使用 browser.driver.switchTo().window(); 因为这是一个新窗口。 我已经读到,我可以通过在控制台中输入'window.name'来获取窗口的名称。 当我这么做的时候,我得到了'u e_02MT' 我也试过“window.document.title”,得到了“Facebook” 我试过不同的组合 b

我正在尝试向使用oauth2的应用程序编写e2e登录测试。 单击facbook登录时,另一个窗口打开(facebook登录)。我正在尝试在那里输入凭据。 我目前正在使用

browser.driver.switchTo().window();
因为这是一个新窗口。 我已经读到,我可以通过在控制台中输入'window.name'来获取窗口的名称。 当我这么做的时候,我得到了'u e_02MT' 我也试过“window.document.title”,得到了“Facebook” 我试过不同的组合

browser.driver.switchTo().window('_e_02MT');
browser.switchTo().window('Facebook');
browser.driver.switchTo().window('Facebook');
等等 还是到不了那个窗口。我得到了一个错误:

 NoSuchWindowError: no such window
有什么想法吗


谢谢。

您需要提供一个句柄,而不是窗口的名称:

browser.getAllWindowHandles().then(function (handles) {
  // switch to the popup
  browser.switchTo().window(handles[1]);

  // do stuff with the popup
  // ...

  // go back to the main window
  browser.switchTo().window(handles[0]);
});

伟大的解决方案:)