这整个代码包含在for循环中。问题是,在循环的第一次迭代中,它执行操作没有问题。但是,在第二次操作时,它没有切换到新窗口,我最终得到“窗口”“不存在”的错误。这是预期的行为吗?
<item name="primColor">@android:color/transparent</item>
答案 0 :(得分:0)
您没有在循环中执行操作,循环完成其迭代然后转到您的操作。当您在多个窗口上执行操作时,必须知道您要在哪个窗口执行哪个操作。因此,如果您对每个窗口有不同的操作,那么使用条件语句,或者如果您想在每个窗口上执行相同的操作,请遵循以下代码
// Switch to new window opened
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
// Perform the actions on new window
driver.findElement(By.id("tier1_l1discountamt")).clear();
driver.findElement(By.id("tier1_l1discountamt")).sendKeys(
discountAmount);
driver.findElement(By.id("save")).click();
}
如果你对每个窗口有不同的操作,那么用户就像belwo条件语句:
// Switch to new window opened
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
if(driver.getTitle().equals("Window Title"){
// Perform the actions on new window
driver.findElement(By.id("tier1_l1discountamt")).clear();
driver.findElement(By.id("tier1_l1discountamt")).sendKeys(
discountAmount);
driver.findElement(By.id("save")).click();
}
}
我希望它会对你有所帮助。