我在除主页之外的任何页面上都找不到我想与之交互的元素。我正在使用的电子应用程序有几个在应用程序启动时加载,但我只能访问第一页上的元素。我认为我切换页面的方式一定有错误,因为我对寻找元素的方式很有信心。更改页面并查找元素的代码段如下。
var mainhandle = await driver.getWindowHandle();
var windowhandles =await driver.getAllWindowHandles();
var mainhandle = await driver.getWindowHandle();
windowhandles.forEach(async newwindow => {
console.log(newwindow);
if(newwindow != mainhandle){
await driver.switchTo().window(newwindow);
console.log("switching to window " + newwindow)
var exists = await driver.findElements(By.css('#App > div > div.MuiPaper-root.MuiCard-root.jss10.MuiPaper-elevation1.MuiPaper-rounded > div.MuiCardHeader-root.jss14 > div.MuiCardHeader-action > button')).then(found => !!found.length);
if(exists==true){
console.log("ayyyyyyy we made it") ;
const newtask = await driver.findElement(By.css('#App > div > div.MuiPaper-root.MuiCard-root.jss10.MuiPaper-elevation1.MuiPaper-rounded > div.MuiCardHeader-root.jss14 > div.MuiCardHeader-action > button'));
newtask.click();
exists=false
}
else{
var testhandle = await driver.getWindowHandle();
console.log("Element not found in " + testhandle);
}
// await driver.close();
}
else{
console.log("this must be the main "+ mainhandle)
}
})
编辑:我想我应该补充一点,每个“切换到窗口”测试输出都会显示一个新窗口,但“找不到元素”总是显示最后一个窗口句柄。我不确定这是否只是我如何测试和查看输出的问题,或者是否还有其他问题。