Iframe
frame 和 iframe 区别 Frame 与 Iframe 两者可以实现的功能基本相同,不过 Iframe 比 Frame 具有更多的灵活 性。 frame 是整个页面的框架,iframe 是内嵌的网页元素,也可以说是内嵌的框架。 IFRAME 是 HTML 标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe 元素会 创建包含另外一个文档的内联框架(即行内框架)。一个内联框架被用来在当前 HTML 文档 中嵌入另一个文档。 Iframe 标记又叫浮动帧标记,可以用它将一个 HTML 文档嵌入在一个 HTML 中显示。它 和 Frame 标记的最大区别是在网页中嵌入 的所包含的内容与整个页面是 一个整体,而< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外, 应用 Iframe 还可以在同一个页面中多次显示同一内容,而不必重复这段内容的代码
1、打开 https://mail.163.com/
2、 检查页面元素,鼠标停留在左下角(定位到 iframe 位置)时,右上角整个登录框显 示灰色,说明 iframe 区域是整个登录框区域。
3、左下角箭头位置显示 iframe 属性:
切换 iframe
1、通过 frame 的 index 定位,第一个为 0。 driver.switch_to.frame (index);
2、iframe 有 id 属性,并且唯一(相对主文档),直接通过 id 跳转。 driver.switch_to.frame("iframe 的 id ")
3、iframe 有 name 属性,直接通过 name 跳转。
driver.switch_to.frame("iframe 的 name ")
4、无 id,无 name,先定位 iframe 元素,然后再跳转。
iframe = driver.find_element_by_xpath("/html/body/iframe ")
driver.switch_to.frame(iframe )
退出 iframe
1、第一种方式:跳出所有 iframe,回到主界面,即是跳回最外层页面。 driver.switch_to_default_content(),方法不用传参,默认跳到最外层。
2、第二种方式:如果进入了多层 frame,回到上一层 frame。
driver.switch_to.parent_frame(),方法不用传参,因为只有一个父亲。
3、使用driver.back(),一层一层返回
备注: Iframe 进入一个页面,点击取消按钮关闭该页面,此时如果要操作外面的父 iframe,需要手 动跳出。因为页面虽然关闭了,但是不会自动跳出。