我正在尝试将 e2e 登录测试写入使用 oauth2 的应用程序。单击facbook登录时 - 打开另一个窗口(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
有什么想法吗?
谢谢。
您需要提供一个句柄,而不是窗口的名称:
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]);
});