如何使用带 Python 的 selenium 库在帧之间切换?

How to switch between frames using selenium library with Python?

我正在尝试将框架“顶部”切换为“主体”。我尝试了不同的方法,但我做不到。来源太多,但其中任何一个都不起作用。它有什么问题? HTML 结构在 link 中。页面是“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]")))

也许问题是能见度?

从框架“顶部”切换到默认内容,然后切换到“主体”。

driver.switch_to_default_content()

如问题所述,您尝试直接从一帧切换到另一帧,这在 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")