在我的情况下,我在APP测试中有很多框架和许多popUp所以我需要每次进入弹出窗口并返回到原始Windows:chrome:
ExemplePg.getWindowHandle();
driver.switchTo().defaultContent()
driver.switchTo().frame(sylobHomepg.get_FrameLevel2());
火狐: 我需要添加“defaultContent”:
ExemplePg.getWindowHandle();
driver.switchTo().defaultContent();
driver.switchTo().frame(sylobHomepg.get_FrameLevel2());
问题:
No such windows
?更新:使用chrome我只使用:
ExemplePg.getWindowHandle();
driver.switchTo().defaultContent();
driver.switchTo().frame(sylobHomepg.get_FrameLevel2());
没有默认值及其工作和firefox,我不需要在切换帧之前添加开关默认值。
相关的HTML将帮助我们以更好的方式分析问题,因为目前还不清楚您是否正在处理<frame>
/ <iframe>
。也许Chrome和Firefox在处理<frame>
/ <iframe>
方面没有显着差异。
在切换ExemplePg.getWindowHandle();
/ <frame>
之前没有<iframe>
的必要性,但重要的是:
new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(driver.findElement(sylobHomepg.get_FrameLevel2())));
在这里你可以找到关于Is it possible to switch to an element in a frame without using driver.switchTo().frame(“frameName”) in Selenium Webdriver Java?的相关讨论