你猜怎么了?微软刚刚发布了新版本的 !跟上错误修复和 API 更改感觉像是一项全职工作,错过一些很酷的功能也很容易。但不用担心;我们支持你! Playwright 加入我们,了解最新的剧作家更新。我们随时帮助您掌握最新动态,学习一些新技巧,并用您出色的技能让您的同事惊叹不已!准备好潜入了吗?我们走吧! 剧作家最新更新 (v1.04) 如果您渴望通过一些精彩示例来第一手了解最新的 Playwright 更新,请前往 并观看每月的“Playwright 最新动态”视频: Playwright YouTube 频道 https://www.youtube.com/watch?v=mn892dV81_8&embedable=true 是时候探索 Playwright 中引入的最新功能并了解如何充分利用它们了🔍 新API 字段添加到 的 对象参数中。该方法使用位于 的持久存储启动浏览器并返回浏览器上下文实例。 `是一个对象,包含在 中指定的 Firefox 用户首选项。 FirefoxUserPrefs browserType.launchPersistentContext(userDataDir, options) options userDataDir firefoxUserPrefs about:config 字段添加到 、 和 方法的 对象参数中。 是一个字符串,其中包含因 调用而中断的所有操作所报告的错误消息。 reason page.close(options) browserContext.close(options) browser.close(options) options reason close() 虽然 专门满足需要自定义配置的 Firefox 用户,但 字段的用途更为通用。像下面的代码片段一样使用它: firefoxUserPrefs reason await browser.close({ reason: "Scraping process completed!" }) 所有被 中断的挂起操作现在都会抛出一个 JavaScript 错误,并显示消息“抓取过程已完成!” browser.close() 如何使用这个功能?想象一下您的目标页面正在执行一项关键任务 - 比方说,正在等待检索一些数据。突然,弹出一个意外错误,您需要优雅地关闭浏览器。 如果没有 ,您就会对正在进行的任务的资源是否已被释放以及操作为何被中断一无所知。不知道发生了什么是不好的,尤其是当您的任务是检查自动网络抓取脚本日志中的错误原因时。这就是“原因”字段为您提供帮助的地方,为您节省数天的艰苦调查时间。 reason 太棒了,这个 API 介绍让调试变得更加容易! 🚀 测试生成器工具的新功能 旨在当您在浏览器中执行操作时自动创建测试,现在提供以下按钮: Playwright 测试生成器工具 :通过生成 指令来验证所选元素是否可见。 断言可见性 expect(locator).toBeVisible() :通过 指令确保所选的HTML元素包含特定文本 断言文本 expect(locator).toContainText() :通过在测试中添加 指令来检查 select 元素是否具有特定值。 断言值 expect(locator).toHaveValue() :您正在处理一项复杂的任务,例如 。假设您需要确保页面上的某些元素可见并包含特定文本或值。这会涉及一些复杂的逻辑👎。但是请稍等,感谢这个新的更新,这一切都可以归结为在测试生成器工具中单击几下! 想象一下 为动态网页构建网络抓取工具 请在下面的 GIF 中查看这一新功能的实际应用: 该测试生成器交互将为您生成以下 TypeScript 测试: import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await expect(page.getByRole('banner')).toContainText('Get started'); }); ✨ 很神奇,不是吗? ✨ 更新的浏览器版本 按照 Playwright 主要更新的宏伟传统,支持的浏览器阵容已更新为新版本: 铬120.0.6099.28 火狐浏览器 119.0 网络工具包 17.4 但这还不是全部!事实证明,当前版本的 Playwright 在以下稳定渠道中表现出色: 谷歌浏览器 119 微软边缘 119 其他细微变化 和 方法现在在下载操作失败或被取消时抛出错误。 download.path() download.createReadStream() Playwright docker 镜像现在附带 Node.js v20。 不想错过任何新的更新?请密切关注剧作家 页面! 发行说明 如何更新剧作家 现在,您一定在想:“我怎样才能获得这些出色的新功能呢?”好吧,将 Playwright 更新到最新版本,我的朋友! 只需启动以下命令: npm install @playwright/test@latest 并且忘记使用以下方式升级浏览器实例: npx playwright install 瞧!您已准备好获取最新的剧作家更新! 新剧作家,同样的老问题...... 无论您的 Playwright 版本有多新,大多数网站仍然能够检测并阻止您的自动化脚本。但这怎么可能呢?嗯,由 Playwright 等库控制的无头浏览器涉及特殊的配置和设置,这些配置和设置被反机器人解决方案视为危险信号。结果呢?立即阻止或出现不受欢迎的验证码和 。 其他讨厌的障碍 现在,您可能会想,“我不能调整浏览器设置来避免这种情况吗?” 别那么快啊,孩子!出于至少三个令人信服的原因,这不是一个好主意: 这是一场永无休止的猫鼠游戏——反机器人措施不断发展,今天的解决方案到明天就会成为旧闻。 即使使用最灵活的浏览器配置,来自同一 IP 的过多请求仍然可能会引起目标站点的怀疑。 表单提交等用户交互可能需要验证码解决,这不是在公园散步就能实现自动化! 问题不在于浏览器自动化库本身(Playwright 太棒了!🤘),而在于浏览器受到控制。解决方案将是一个高度可定制的浏览器,它: 像普通浏览器一样以 head 模式运行,以避免机器人检测。 可以轻松扩展到云,以节省您在基础设施管理方面的时间和金钱。 提供由市场上最广泛、最可靠的代理网络之一支持的轮换 IP 可以自动管理验证码解决、浏览器指纹识别、cookie 和标头自定义以及自动重试,以实现最大效率。 与最流行的浏览器自动化库集成,例如 Playwright、Selenium 和 Puppeteer 不管你信不信,这并不是遥远的海市蜃楼。这是真实的,这正是 解决方案的全部内容! Bright Data 的抓取浏览器 最后的想法 Playwright 是浏览器自动化库的摇滚明星,就像圣诞老人在平安夜送礼物一样,微软每个月都会发布一个重大的新更新。在这里,您已经了解了如何充分利用最新的 Playwright 更新,但让我们面对现实吧,它们不会神奇地让您对具有先进机器人检测技术的网站隐形。 使用 的抓取浏览器解决方案来躲避子弹,并加入我们的使命,让互联网成为每个人、任何地方的公共场所,甚至通过自动化脚本! Bright Data 直到下一次,继续自由地探索网络!