我试图将框架“ top”切换为“ body”。我尝试了不同的方法,但是我做不到。来源太多,但任何一个都不起作用。有什么问题吗? 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]")))
也许是可见性?
答案 0 :(得分:1)
从“顶部”框架切换到默认内容,然后切换至“正文”。
driver.switch_to_default_content()
答案 1 :(得分:0)
正如所提到的,您尝试直接从一帧切换到另一帧,这些帧在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")