簡體   English   中英

如何在Chrome和Firefox瀏覽器中通過Selenium切換幀?

[英]How to switch frames through Selenium in Chrome and Firefox browser?

在我的情況下,我的被測APP中有很多框架,還有很多彈出窗口,因此我每次都需要進入彈出窗口並返回原始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. 我在詹金斯(Jenkins)的工作做得很好,有時甚至會出錯: No such windows

更新:我使用的只是chrome:

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

沒有默認設置及其工作,並且沒有使用Firefox,我需要在開關框架之前添加默認開關。

相關的HTML本可以幫助我們以更好的方式分析問題,因為仍不清楚您是否正在處理<frame> / <iframe> ChromeFirefox在處理<frame> / <iframe>可能沒有顯着差異。

ExemplePg.getWindowHandle();不需要這樣ExemplePg.getWindowHandle(); <frame> / <iframe>之間切換之前,但重要的是:

  • 促使 WebDriverWait提供所需的幀,並如下切換到它

     new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(driver.findElement(sylobHomepg.get_FrameLevel2()))); 

在這里,您可以找到有關在Selenium Webdriver Java中不使用driver.switchTo()。frame(“ frameName”)切換到框架中的元素的相關討論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM