如何在Chrome和Firefox浏览器中通过Selenium切换帧?

问题描述 投票:2回答:1

在我的情况下,我在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());

问题:

  1. 为什么我在chrome和Firefox之间有这个区别?
  2. 我在詹金斯的工作很好,很多次,有时我有一个错误:No such windows

更新:使用chrome我只使用:

ExemplePg.getWindowHandle(); 
driver.switchTo().defaultContent();
driver.switchTo().frame(sylobHomepg.get_FrameLevel2()); 

没有默认值及其工作和firefox,我不需要在切换帧之前添加开关默认值。

java selenium google-chrome firefox frame
1个回答
0
投票

相关的HTML将帮助我们以更好的方式分析问题,因为目前还不清楚您是否正在处理<frame> / <iframe>。也许Chrome和Firefox在处理<frame> / <iframe>方面没有显着差异。

在切换ExemplePg.getWindowHandle(); / <frame>之前没有<iframe>的必要性,但重要的是:

  • 引导WebDriverWait以获得所需的帧,并按如下方式切换到该帧。 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?的相关讨论

© www.soinside.com 2019 - 2024. All rights reserved.