iframe框架一个页面中嵌套到另外一个页面

在一个页面中嵌套另外一个页面,就要使用到框架<iframe> 标签。<iframe> 标签规定一个内联框架。一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。

基本语法

<iframe src="URL"></iframe>

举例

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>框架</title>
    </head>
    <body>
        <iframe src="https://www.qingqingblog.com"></iframe>
    </body>
</html>

 运行浏览器后得到的效果如图

 

以上例子展示了<iframe>的用法,在浏览器执行后,<iframe>有个默认的高宽,让整个页面看起来不自然,还需要调整,所以接下来我们还要了解更多关于<iframe>的属性。

常用属性

属性描述
frameborder
  • 1
  • 0
规定是否显示框架周围的边框。
height
  • pixels
  • %
规定 iframe 的高度。
scrolling
  • yes
  • no
  • auto
规定是否在 iframe 中显示滚动条。
srcURL规定在 iframe 中显示的文档的 URL。
width
  • pixels
  • %
定义 iframe 的宽度。

1、<iframe> 标签的 frameborder 属性

frameborder 属性规定是否显示 iframe 周围的边框。

举例:

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>框架</title>
    </head>
    <body>
        <!--不显示 iframe 周围的边框-->
        <iframe src="https://www.qingqingblog.com" frameborder="0"></iframe>
        <br /><br />
        <!--显示 iframe 周围的边框-->
        <iframe src="https://www.qingqingblog.com" frameborder="1"></iframe>
    </body>
</html>

运行浏览器后得到的效果如图

 

附加说明:当frameborder="0",表示关闭边框;frameborder="1",表示有边框(默认=1),出于实用性方面的原因,最好不用设置该属性,请使用 CSS 来应用边框样式和颜色。

2、<iframe> 标签的 height 属性

height 属性规定 iframe 的高度。

举例:

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>框架</title>
    </head>
    <body>
        <iframe src="https://www.qingqingblog.com" frameborder="0" height="200"></iframe>
    </body>
</html>

运行浏览器后得到的效果如图

 

附加说明:可以是以像素计的高度值(比如 "100),也可以是以包含元素百分比计的高度值(比如 "20%"),注意设置百分比的时候,它的父元素也就是外围必须要指定高度,否则百分比不生效。

3、<iframe> 标签的 scrolling 属性

scrolling 属性规定是否在 iframe 中显示滚动条。

举例:

<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>框架</title>
    </head>
    <body>
        <h3>iframe 中始终显示滚动条:</h3>
        <iframe src="https://www.qingqingblog.com" width="300" height="100" scrolling="yes"></iframe>
        <h3>iframe 中从不显示滚动条:</h3>
        <iframe src="https://www.qingqingblog.com" width="300" height="100" scrolling="no"></iframe>
    </body>
</html>

运行浏览器后得到的效果如图

附加说明:scrolling默认的是auto,也就是有滚动条。如果要想隐藏iframe出现的滚动条,可以使用scrolling="no"隐藏滚动条。

scrolling 属性值

描述
auto在需要的情况下出现滚动条(默认值)。
yes始终显示滚动条(即使不需要)。
no从不显示滚动条(即使需要)。

特别说明

iframe标签可以实现页面嵌套页面的功能,可以丰富我们的页面,但是这个功能不建议使用,原因是iframe不利于当前网页的搜索引擎优化,所以要使用iframe标签嵌套需要酌情考虑。

当你学习到这篇教程的时候,已经掌握了大部分的html标签知识了,接下来我们就可以学习CSS样式表了,千万不要半途而废哦,CSS也很好玩的。

### Selenium WebDriver 处理多层嵌套 iframe 对于包含多个 `iframe` 的网页,在使用 Selenium WebDriver 进行自动化测试时,需要特别注意如何正确切换上下文以便于定位和交互这些内嵌框架中的元素。 #### 切换至指定的 iframe页面中有多个 `iframe` 时,可以通过多种方式来选择特定的一个: - **通过 ID 或 Name 属性** 如果目标 `iframe` 具有唯一的 `id` 或者 `name` 属性,则可以直接利用这两个属性来进行切换。例如,假设有一个 `iframe` 的 `id="myFrame"`,那么就可以这样切换进去: ```java driver.switchTo().frame("myFrame"); ``` - **通过索引位置** 当无法依据 `id` 或 `name` 来识别 `iframe` 时,还可以按照它们加载顺序所对应的整数索引来选取。需要注意的是这里的索引是从0开始计数而不是1。 ```java driver.switchTo().frame(0); // 假设这是第一页内的首个 iframe ``` - **通过 WebElement 对象** 可以先找到代表某个 `iframe` 的 DOM 节点(即 `WebElement`),然后再基于此对象完成切换动作。这种方式适用于那些既无合适 `id/name` 又难以确定确切索引的情况。 ```java WebElement frameElement = driver.findElement(By.cssSelector("#outerIframe")); driver.switchTo().frame(frameElement); ``` 一旦进入了某一层级的 `iframe` 后,便可以在其内部继续查找并操作其他子元素了。不过值得注意的一点是在结束当前 `iframe` 下的操作之后,应该及时返回至上一层次或者直接回到最外层文档结构中去,这通常借助下面两种方法实现: - 返回上一级父级 `iframe` ```java driver.switchTo().parentFrame(); ``` - 回退到整个 HTML 文档顶部 ```java driver.switchTo().defaultContent(); ``` 以上就是针对含有多个 `iframe` 页面开展自动化测试的主要思路和技术要点[^1]。 ```python from selenium import webdriver from selenium.webdriver.common.by import By # 初始化浏览器驱动实例 driver = webdriver.Chrome() try: # 打开含有多重 iframe 结构的目标网站 driver.get('http://example.com') # 切入第一个 iframe (假设有 id='first-frame') first_frame = driver.find_element(By.ID, 'first-frame') driver.switch_to.frame(first_frame) # 在第一个 iframe 内部再切入第二个 iframe (假如它也有自己的 id) second_frame = driver.find_element(By.ID, 'second-inner-frame') driver.switch_to.frame(second_frame) # 此处可对第二层 iframe 中的内容进行各种操作... finally: # 清理工作:关闭浏览器窗口 driver.quit() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wwwarewow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值