将焦点更改为另一个未定义名称的窗口
Change focus to another window, where name is undefined
我正在使用WD.js的webdriver客户端为node.js来测试我的应用程序。
在我的应用程序中,点击按钮后会打开一个新的浏览器窗口。显然,由于硒的性质,旧窗口保持活跃。
我试图使用window()
方法从wd.js切换到新窗口,但它需要一个窗口名称作为未设置的参数。
有没有办法在不知道窗口名称的情况下在窗口之间切换?
我找到了答案。
你会想在这里使用这个函数
var handlePromise = driver.getAllWindowHandles();
handlePromise.then(function (handles){
var popUpWindow = handles[1];
driver.switchTo().window(popUpWindow);
})
- 这里我们告诉驱动程序获取所有的窗口句柄 然后我们将句柄作为参数传递给函数
- 然后我们将句柄[1](这是新窗口)的值分配给变量'popUpWindow'
- 告诉驱动程序切换到新窗口
我使用了这个,它适用于所有浏览器:-试试这个代码:-
var tab_handles =await driver.getAllWindowHandles();
let number_of_tabs = tab_handles.length;
let new_tab_index = number_of_tabs-1;
await driver.switchTo().window(tab_handles[new_tab_index]);
async函数使用await而不是Promise。
如果你想使用Promise,那么试试下面的代码:-
driver.getAllWindowHandles().then((tab_handles)=>{
let number_of_tabs = tab_handles.length;
let new_tab_index = number_of_tabs-1;
driver.switchTo().window(tab_handles[new_tab_index]);
});
希望能有所帮助....
我将在java实现中执行以下操作,
String parentWindowHandle = browser.getWindowHandle(); // save the current window handle.
WebDriver popup = null;
Iterator<String> windowIterator = browser.getWindowHandles();
while(windowIterator.hasNext()) {
String windowHandle = windowIterator.next();
popup = browser.switchTo().window(windowHandle);
if (popup.getTitle().equals("Google") {
break;
}
}
在这里,名称不是必须的。同样地,你能试着循环切换吗?供您参考,
switchToWindow(name/Handle)
-通过名称或句柄将焦点切换到不同的浏览器窗口。所以尝试一下,让社区知道解决方案。祝你好运!
相关文章:
- 如何解决'窗口未定义'终端上的节点JS出错
- Internet窗口未定义
- requirejs优化器错误:未定义窗口
- window.location.href窗口未在javascript中定义
- $window错误'$窗口未定义'Angular应用程序中的谷歌分析代码
- 窗.WebSocket - 未定义窗口
- Google Maps API V3 信息窗口错误:“信息窗口未定义”
- 窗口未使用对等.js定义
- 为流星重新包装砌体会产生错误“引用错误:窗口未定义”
- Ace 编辑器:未捕获的引用错误:窗口未定义
- 谷歌地图 api v3 - “信息窗口未定义”错误
- 流星.js:引用错误:窗口未定义
- $=require('jQuery')导致'窗口未定义'.该怎么办
- AngularJS”;ReferenceError:窗口未定义“;在NodeJS应用程序中
- requirejs窗口未定义
- 用Gulp摩卡测试Angular:“;窗口未定义”;
- AWS Cognito未认证登录错误(窗口未定义)[JS]
- SystemJS Builder -窗口未定义
- 使用Grunt的Node JS项目,生成的JS文件有ReferenceError:窗口未定义
- 如何正确处理 React 服务器端渲染中的窗口=未定义错误