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

protractor - switch to facebook login screen when testing Oauth2

我正在尝试为我使用 oauth2 的应用程序编写端到端登录测试。 单击 facbook 登录时 - 另一个 window 打开(facebook 登录)。我正在尝试在那里输入凭据。 我目前正在使用

browser.driver.switchTo().window();

因为是新的window。 我读到可以通过在控制台中输入 'window.name' 来获取 window 的名称。 这样做的时候我得到了'_e_02MT' 我也试过 'window.document.title' 并得到了 'Facebook' 我尝试了

的不同组合
browser.driver.switchTo().window('_e_02MT');
browser.switchTo().window('Facebook');
browser.driver.switchTo().window('Facebook');

等等 仍然无法做到 window。我收到错误:

 NoSuchWindowError: no such window

有什么想法吗?

谢谢。

您需要提供 句柄:

,而不是 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]);
});