大多数浏览器和
Developer App 均支持流媒体播放。
-
重新发现 Safari 浏览器的开发者功能
准备好探索 Safari 浏览器为网页开发和设计者提供的丰富工具集吧。了解如何检查网页内容,探索响应式设计模式和 WebDriver,并了解如何开始使用模拟器和设备。我们还将向你展示如何与 Vision Pro 配对、以便检查你的 App 中的内容,以及在响应式设计模式下使用“用模拟器打开”来帮助你在任何设备上测试你的网站。
资源
- Adding a web development tool to Safari Web Inspector
- Safari Technology Preview
- Submit feedback
- Web Inspector Reference
- WebKit Open Source Project
相关视频
Tech Talks
WWDC23
WWDC21
-
下载
♪ 悦耳的器乐嘻哈 ♪ ♪ 大家好 我是 Patrick 是 WebKit Developer Experience 团队的工程师 很高兴可以为你展示 Safari 浏览器中 供网站开发者使用的功能 Safari 浏览器提供了一系列功能 可以帮助像你一样的 网站开发和设计人员 访问丰富的工具 来检查你的网页、网站 App、 包含 JavaScript 和网站视图的 App 和扩展等等 当与 Mac 配对使用时 这些工具可以在 iOS、 iPadOS、Apple tvOS 和 xrOS 上无缝运行 今天我们会涵盖 Safari 浏览器中 可用的开发者工具 首先简要介绍在 macOS 上 帮助你检查网页的工具 然后我们 会介绍如何在 Safari 浏览器中 预览响应式布局 以及在 iOS、iPadOS 和 xrOS 模拟器中进行同样的预览 接下来 我们将超越你的 Mac 了解如何使用 Mac 调试其他设备上 运行的内容 如 iPhone 或者运行 xrOS 的设备 然后我们会介绍 如何使用 WebDriver 以跨浏览器和跨平台的方式 进行自动化测试 最后 我们会介绍 如何使用重新设计的功能标志设置 来探索未来的网页平台功能 但在我们深入讨论这些话题之前 如果你还没用过 Safari 浏览器的开发者功能 需要先启用该功能 你可以在 Safari 浏览器的设置中找到显示 网站开发者功能的选项 选择菜单栏中的 “Safari 浏览器” 然后选择“设置” 在设置窗口中 点击“高级”标签页 你就会找到 显示网站开发者功能的复选框 启用此设置 现在已经启用了网页开发者功能 我们先快速了解 如何使用 Safari 浏览器中的工具 来检查打开的网页 我一直在努力调整 此网页的背景颜色 我觉得从宇航员的头盔中提取颜色 会让颜色更加协调 我们看看如何使用网页检查器 帮助我选择一个颜色 作为背景渐变的一部分 显示在此页面上 有两种快速打开网页检查器 来检查正在处理的页面的方法 首先是在开发菜单中 我们今年重新进行了设计 使你更容易找到 设计和开发网页内容的关键工具 菜单中有几个选项 可以直接打开网页检查器 进入一个标签页或任务 但我只想打开网页检查器 而不跳转到特定的标签页 所以我会选择显示网页检查器 但我还想为你展示 另一种打开网页检查器的便捷方法 在网页的任何地方 按住 Control 键点击 会显示上下文菜单 选择检查元素 不仅会显示网页检查器 还会选择此元素 在详细信息边栏中 显示其样式和其他信息 即使网页检查器可见后 仍可以使用检查元素选项 你可以用相同的方式选择其他元素 或使用元素选择工具来查看你悬停的 每个元素的信息 包括选择器、 边距等布局信息、形状轮廓 和辅助功能角色等 当你在元素选择模式中点击时 在网页检查器中该元素会被选中 但现在 既然我 已经打开了网页检查器 我想看看页面的背景渐变 我很想 从宇航员的面罩上提取一些颜色 好让宇航员更好地融入背景 要编辑渐变 可以点击 Styles 边栏中 渐变旁边的预览样本 选择想要编辑的渐变部分 然后使用颜色选取器 从屏幕上的某个位置提取颜色 如宇航员的面罩
这个颜色太浅了 不太符合我的审美 可能不是个好主意 我觉得之前看起来更好一些 我会用 Command + Z 键撤消更改 并暂时保持之前的颜色 当然 这只是网页检查器 检查网页的其中一个功能 如果你想进一步了解有关网页检查器 可用工具的更多信息 请观看视频 “网页检查器的新功能”以及 WWDC21 中的 “了解网页检查器的改进” 我们现在来看看另一个工具 它旨在通过 测试网页对用户显示设备的适应能力 来帮助你完善网页设计 Safari 浏览器有一个叫 响应式设计模式的工具 可通过“开发”菜单中的 “进入响应式设计模式”选项来访问 如果你之前使用过响应式设计模式 你可能注意到我们已经进行了调整 以便你可以专注于内容布局 在任何屏幕尺寸下的响应能力 你可以尝试比窗口更大 甚至比屏幕更大的视口大小 当拖动视口边缘的控制点时 视口会进行缩放来继续显示 整个页面 重新排列 文本和图像等元素 来适应新的视口大小 你还可以通过在视口上方 输入自定义的 宽度和高度来设置具体大小 在宽度和高度的右侧 你会看到缩放系数 即视口呈现的实际大小的百分比 这里的缩放系数并非 100% 因为视口的当前高度为 800 像素 但窗口高度不够 无法显示整个视口 所以 Safari 浏览器将视口的显示 缩小到全尺寸的 78% 响应式设计模式还允许你更改 像素比例 通过提供 适应不同显示设备像素比例的 图像资源和其他样式 测试响应能力的额外维度 在网页上有几种响应 显示设备像素比例的方法 包括 用于图像标签的源集、 在可以使用图片的地方使用的 CSS 图像集函数 以及分辨率媒体查询 允许你 根据显示设备的像素比例 微调页面的任何样式 如边框大小 有时你可能不仅要测试页面 在 macOS 上的响应能力 还要在 iOS、iPadOS 和 xrOS 上进行测试 今年推出的新功能 是从 Safari 浏览器 快速进入模拟器 模拟器是在 iOS、 iPadOS 和 xrOS 上 测试网页内容的绝佳方式 不需要实体设备 iOS 和 iPadOS 模拟器已包含在 Xcode 中 并包括 适用于这些平台的 Safari 浏览器 Xcode 可以在 Mac App Store 免费下载 运行一次 Xcode 完成设置之后 下次启动 Safari 浏览器时 模拟器便可以使用了 点击在模拟器中打开 会显示已安装的模拟器列表 并将当前正在运行的模拟器置于顶部 以便轻松访问 如果你尚未安装 Xcode 或者想要为其他设备添加模拟器 你可以从菜单中的链接 查看帮助文档 来帮助你入门 我们来在模拟器中打开当前页面 该模拟器已在运行 但如果模拟器尚未运行 系统会为你启动它 有一点需要特别注意: 模拟器和 macOS 上的 Safari 浏览器之间的 网页布局有差异 请注意 即使页面宽度大致相同 iOS 上 Safari 浏览器的页面布局 看起来好像有更多的屏幕可用空间 模拟器还有另一个优点: 你可以测试用户 在 iOS 上会进行的操作 比如平滑滚动页面 和轻点两下进行缩放 可以确保 即使没有使用 iPhone 测试 也能提供出色的用户体验 当你在模拟器中打开了一个网页 可以在开发菜单中 找到相应的模拟器 然后选择要检查的 模拟器中的网页 使用网页检查器来进行检查 网页检查器的窗口会打开 检查模拟器中的所选页面 除了 iOS 和 iPadOS 你还可以利用 xrOS 模拟器来测试该平台上的 网页内容 如果没有安装模拟器 在“使用模拟器打开”菜单中 选择“添加模拟器” 来进行添加 模拟器安装完成后 你可以像使用 iOS 模拟器一样 使用 xrOS 模拟器 包括如何使用 Mac 上的 Safari 浏览器检查网页内容 在 Safari 浏览器的 开发菜单中找到模拟器 并选择要检查的内容 你不仅可以从 macOS 上的 Safari 浏览器检查模拟器 还可以从 Mac 上的 Safari 浏览器 检查 iOS、iPadOS、 Apple tvOS 和 xrOS 设备 与模拟器不同 你得在使用 Mac 检查之前 在设备上启用检查内容功能 让你的设备提供 Safari 浏览器 和其他可检查的 App 中 打开的网页列表 对于 iOS 和 iPadOS 你可以 在设置 App 中进行此操作 向下滚动并选择 “Safari 浏览器” 然后滚动到底部并选择“高级” 然后切换“网页检查器”为启用 最后 使用线缆 将你的设备连接到 Mac 在这里 我在 iPad 上 打开了几个网页内容 包括一个 Safari 浏览器窗口 和一个主屏幕网页 App 现在我们返回到 Mac 上来检查此内容 在你的 Mac 上的开发菜单中 在我们之前使用的模拟器相同的位置 你会看到刚刚连接的设备的条目 和模拟器类似 你可以看到其中可检查的内容 包括 在 Safari 浏览器中打开的网页 主屏幕网页 App 甚至服务工作进程 像之前的操作一样 我们可以 从菜单中选择一个可检查的内容 比如主屏幕网页 App 和之前一样 网页检查器会出现 并从你的 Mac 上 检查设备上的内容 但如果不需要使用线缆 来从 Mac 检查设备 那岂不是很棒? 我们回到 Mac 上 看看 如何通过网络连接到你的设备 回到“开发”菜单 你会看到 一个“通过网络连接”的选项 选择此项后 只要你的 Mac 和设备在同一个网络上 无需使用线缆 即可连接设备 启用了此设置后 你可以拔下设备 并通过无线连接进行检查 今年新推出了功能 你还可以从运行 macOS Sonoma 的 Mac 上 检查 xrOS 设备 但与检查 iOS 和 iPadOS 的 开始操作不同 为了可以在无线连接的情况下 检查设备 我们支持通过网络与此平台配对 我们来与我同事的设备配对 首先 打开“设置” 选择“App” 然后再选择“Safari 浏览器” 滚动到底部选择“高级” 启用“网页检查器” 现在 你需要 将设备与你的 Mac 配对 确保你的 Mac 和设备 连接到同一个网络 然后在“设置”中选择“通用” 然后选择“远程设备” 当“远程设备”屏幕显示时 你的设备就准备好 与 macOS 进行配对了 在你的 Mac 上 打开 Safari 浏览器中的“开发”菜单 然后从设备的子菜单中 选择“用于开发” 在你的设备上 会显示一个六位数的配对码 而在你的 Mac 上 会出现一个窗口来输入配对码 在你的 Mac 上输入此配对码 输入配对码后 配对将自动完成 并且你的 Mac 将出现在 你的设备的远程设备列表中 设备配对完成后 你可以像检查 iOS 设备一样 使用 Mac 打开 Safari 浏览器 并检查网页和其他内容 元素选择模式也可以使用 与先前在 macOS 上一样 进入元素选择模式 在网页上通过手势响应 选择你想要检查的节点 如果你想进一步了解更多有关 为 xrOS 设计和开发网页内容的信息 请观看视频 “使用 Safari 浏览器进行空间计算” 网页内容不仅限于 Safari 浏览器和网页 App Apple 平台上有超过一百万个 App 使用网页页面和 JavaScript 今年新推出一项功能 让你可以在 App 的发布版本中 检查该内容 可能你的 App 的 部分 UI 是网页内容 或者你的 App 的某些部分 使用 JavaScript 来控制 在这些情况下 可在 macOS 13.3 及更高版本、 iOS 和 iPadOS 16.4 及更高版本 以及 xrOS 中使用 API 来检查你的 App 中的内容 此 API 适用于 WKWebView 和 JSContext 我们建议在构建检查时 为每个 JSContext 提供一个名称 该名称会在 Safari 浏览器的开发菜单中显示 帮助你区分多个 JSContext App 启用某些内容的检查后 可以在 Safari 浏览器的 开发菜单中进行检查 就像检查设备上的 其他网页内容一样 既然可以跨设备检查和调试内容 让我们来看看如何通过 WebDriver 确保内容按预期运行 随着网页的发展 持续测试网页 确保其平稳运行非常重要 WebDriver 是一个跨浏览器的 API 用于自动化测试网页内容 支持所有主流浏览器和平台 无需编写针对特定浏览器的代码 WebDriver 托管一个本地网页服务器 接受 HTTP 请求 使其能够接受 来自各种测试环境的自动化命令 并提供多种可用于 对网页运行自动化测试的命令 例如查找元素、 获取元素的辅助功能角色、 执行 JavaScript 甚至截取屏幕截图 大多数情况下 你会使用第三方库 与 WebDriver 进行交互 其中常用的库是 Selenium 提供 Python、Java、 PHP、JavaScript 等编程语言的 API 下面会介绍使用 Selenium 自动化 Safari 浏览器的 Python 脚本示例 此脚本使用 Safari 浏览器的 默认选项创建一个驱动程序 然后会导航到 webkit.org 的 网页检查器文档页面 到达目标页面后 找到搜索字段 并输入“device” 最后 断言找到 Device Settings 链接 完成后 结束自动化会话 以便 Safari 浏览器 清理打开的窗口 我们来运行此脚本 一个带有橙色标题栏的 新窗口被创建 表示该窗口正在进行自动化操作 可以看到测试的交互行为 如同用户在输入一样 其实此处的演示速度已经减慢 以便让你看清楚到正在进行的测试 如果以正常速度运行 测试几乎在开始后立刻便结束 这只是带我们领略一下 WebDriver 和 Safari 浏览器的可能性 测试也可以在 iOS 和 iPadOS 模拟器 以及实体 iPhone 或 iPad 上运行 既然我们已经探索了现有的功能 我们来看看如何探索 网页平台未来的新功能 网页不断演进 看到潜在的未来工具和技术 令人振奋 在它们应用到网页浏览器之前 就试用它们更是激动人心 Safari 浏览器可以 让你使用新的功能标志设置 来启用这些功能 你可以从“开发”菜单中 选择“功能标志”来打开它们 功能标志在 Safari 浏览器中 以前称为实验性功能 功能标志按主题进行排列 如动画、CSS、JavaScript、媒体等 以便轻松查找功能 还可以搜索功能 例如 我们可以搜索 color 来查找所有相关功能 启用功能也非常快速 只需选中复选框 就可以使用相应功能了 你可以快速查看 已启用的功能 一目了然 例如在这里 CSS 瀑布流布局 已启用 并以粗体显示 表示非默认状态
你可以在视频 “CSS 新功能”中进一步了解 今年 Safari 浏览器中发布的 瀑布流布局等其他 CSS 新功能 你可能还注意到窗口右侧的 每个功能都标有相应状态 共有四种功能状态 第一个状态是稳定状态 代表最近 在 Safari 浏览器中发布 且默认启用的功能 可以切换这些功能来确定功能 是否存在问题 或者确保你的网站 在还没有支持该功能的浏览器中 平稳处理它的缺失 稳定的功能最终会 从可切换功能列表中删除 可测试功能表示某一功能 尚未完全准备好投入使用 但可能已准备好接受早期反馈 或正处于实施过程中 可测试功能可能并非完全完备 但可帮助了解并改进 构建功能的标准 以确保规范满足网页开发者的需求 这些功能默认处于禁用状态 最后一种常见的功能状态 是预览状态 此状态适用于已准备好 供开发者开始测试的功能 这些功能比可测试的功能更完善 但可能仍存在错误 虽然这些功能在 Safari 浏览器中 默认处于禁用状态 但在 Safari Technology Preview 中 默认启用 Safari Technology Preview 每两周左右发布一次 在网页平台新功能的最新更新 在所有平台的 Safari 浏览器上发布之前 为开发者提供提前访问它们的机会 还有一种功能状态是开发者状态 开发者通过这些设置可以为开发 调整 WebKit 的行为 或者为测试 重新启用已弃用的 API 请记住 每个功能标志的 默认设置决定了用户 体验内容的方式 还要记住 更新 Safari 浏览器时 功能标志 会自动重置为默认状态 至此 已向你介绍完 Safari 浏览器中可供开发者 使用的工具和功能 介绍的内容可能比较粗浅 除了我们今天介绍的所有功能 Safari 浏览器还有更多功能 包括今年发布的功能和改进功能 来帮助你调试内容 我们还为网页开发者 编写了新的 Safari 浏览器功能帮助文档 来帮他们快速找到 可用工具以及相关的使用方法 此外 你可以在 webkit.org 上找到 有关网页检查器的 详细介绍文档 帮助你详细了解 网页检查器的全部功能 我们也非常期待听到你的建议 如果遇到了错误 或者想向我们提出建议 帮助我们改进 面向网页开发者的功能 你可以在“反馈助理”中提交反馈 选择“Safari 浏览器” 作为反馈的领域 然后在“详细信息”下 选择“开发者工具” 我们今天介绍了 Safari 浏览器中各项功能 来帮助你在 Apple 平台上 开发、完善和测试内容 希望你能喜欢 非常期待看到你构建的作品 感谢观看 ♪
-
-
6:20 - HTML image source set
<img src="astronaut_1x.jpg" srcset="astronaut_2x.jpg 2x astronaut_3x.jpg 3x" />
-
6:27 - CSS image set
.starfield { background-image: image-set("stars_1x.jpg" 1x, "stars_2x.jpg" 2x); }
-
6:32 - CSS resolution media query
@media (min-resolution: 2dppx) { .divider-line { border: 0.5px solid grey; } }
-
13:41 - Inspectable WKWebViews and JSContexts
let webConfiguration = WKWebViewConfiguration() let webView = WKWebView(frame: .zero, configuration: webConfiguration) if #available(macOS 13.3, iOS 16.4, *) { webView.isInspectable = true } let jsContext = JSContext() jsContext?.name = "Context name" if #available(macOS 13.3, iOS 16.4, tvOS 16.4, *) { jsContext?.isInspectable = true }
-
15:32 - WebDriver test
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.safari.options import Options as SafariOptions options = SafariOptions() driver = webdriver.Safari(options=options) driver.get("https://webkit.org/web-inspector/") search_element = driver.find_element(by=By.ID, value="search") search_element.send_keys("device") assert(driver.find_element(by=By.LINK_TEXT, value="Device Settings")) driver.quit()
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。