【问题标题】:How to switch between frames using selenium library with Python?如何使用带有 Python 的 selenium 库在帧之间切换?
【发布时间】:2020-07-11 14:49:34
【问题描述】:

我试图将框架“顶部”切换到“主体”。我尝试了不同的方法,但我做不到。有太多的来源,但其中任何一个都不起作用。它有什么问题? HTML 结构在链接中。页面是“jsp”。

# 1 
driver.switch_to_frame("body")

# 2
wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"/html/frameset/frame[3]")))

也许问题在于可见性?

【问题讨论】:

    标签: python selenium jsp selenium-webdriver frames


    【解决方案1】:

    从框架“top”切换到默认内容,然后切换到“body”。

    driver.switch_to_default_content()

    【讨论】:

      【解决方案2】:

      如问题所述,您尝试直接从一帧切换到另一帧,它们在 DOM 中处于同一级别,例如:

      <iframe name="top"></iframe>
      <iframe name="body"></iframe>
      

      在切换到另一个框架之前,您需要先切换到defaultContent

      driver.switch_to.default_content()

      然后尝试切换到框架body

      driver.switch_to_frame("body")
      

      我们不能直接从一帧切换到另一帧,除非目标帧位于当前帧内。

      例如:

      <iframe name="top">
          <iframe name="body"></iframe>
      </iframe>
      

      那么,我们可以使用:

      driver.switch_to_frame("top")
      driver.switch_to_frame("body")
      

      【讨论】:

      • 这是一个完美的解释。我不知道。谢谢你,先生。 @Kuldeep Kamune
      猜你喜欢
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 2020-07-22
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多