3

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

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

因为它是一个新窗口。我读过我可以通过在控制台中输入“window.name”来获取窗口的名称。这样做时,我得到了“_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

有任何想法吗?

谢谢。

4

1 回答 1

3

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

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]);
});
于 2015-02-04T14:54:42.547 回答