news 2026/7/14 5:20:49

免写代码、自动录制、跨浏览器神器( Selenium )

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
免写代码、自动录制、跨浏览器神器( Selenium )

微软开源神器:Playwright —— 真正的 Python 自动化利器(免写代码版)

  • 1. 安装 Playwright 库 (需要 Python 3.7+)
  • 2. 安装浏览器驱动文件 (Chromium, Firefox, WebKit)
  • 注意:此步骤下载文件较大,过程可能稍慢

大家好,我是 V保持哥。
玩过爬虫的朋友对 Selenium 一定不陌生,它是自动化测试的神器,也是爬虫遇到瓶颈时的“救火队员”。虽然 Selenium 文档完备,但学习成本依然存在,对纯小白来说有一定门槛。
最近,微软开源了一个名为 playwright-python 的项目,简直“碉堡了”!它不仅是一个强大的自动化库,更厉害的是它支持录制功能——连代码都不用写,手动操作一遍,它就能自动生成 Python 脚本。
下面带大家一探究竟。
  1. 什么是 Playwright?
    Playwright 是一个强大的 Python 库,仅用一个 API 即可自动执行 Chromium、Firefox、WebKit 等主流浏览器的自动化操作。
    🌍 跨浏览器:支持 Chromium, Firefox, WebKit。
    💻 跨平台:支持 Linux, Mac, Windows。
    ⚡️ 极速可靠:提供无头模式(Headless)和有头模式,运行速度快且稳定。
  2. 快速上手指南
    🛠️ 安装步骤
    Playwright 的安装非常简单,只需两步:
# 安装playwright库pipinstallplaywright# 安装浏览器驱动文件(安装过程稍微有点慢)python-mplaywrightinstall

1. 安装 Playwright 库 (需要 Python 3.7+)

pip install playwright

2. 安装浏览器驱动文件 (Chromium, Firefox, WebKit)

注意:此步骤下载文件较大,过程可能稍慢

python -m playwright install
🎥 核心功能:代码录制 (Codegen)
这是 Playwright 最“黑科技”的功能。你不需要手写代码,只需像平时一样操作浏览器,它会自动将你的点击、输入转化为代码。
录制命令:

# 基础命令python-mplaywright codegen# 指定目标语言、输出文件和浏览器,并打开指定网址python-mplaywright codegen--targetpython-o'my.py'-bchromium https://www.baidu.com

参数说明:
-o :将录制的脚本保存到指定文件。
–target :指定生成脚本的语言(javascript, python, python-async, csharp),默认为 Python。
-b :指定浏览器驱动(chromium, firefox, webkit)。
效果演示:
执行命令后会自动打开浏览器,你在浏览器上的所有操作(点击、输入、跳转)都会实时翻译成代码。结束后自动关闭浏览器并保存脚本。
自动生成的代码示例(百度搜索京东):

fromplaywrightimportsync_playwrightdefrun(playwright):browser=playwright.chromium.launch(headless=False)context=browser.newContext()# 打开新页面page=context.newPage()page.goto("https://www.baidu.com/")# 模拟点击和输入page.click("input[name=\"wd\"]")page.fill("input[name=\"wd\"]","jingdong")page.click("text=\"京东\"")# 处理弹窗跳转withpage.expect_navigation():withpage.expect_popup()aspopup_info:page.click("//a[normalize-space(.)='京东JD.COM官网 多快好省 只为品质生活']")page1=popup_info.value# 关闭context.close()browser.close()withsync_playwright()asplaywright:run(playwright)
  1. 进阶:API 编程模式
    除了录制,Playwright 也提供了非常优雅的同步和异步 API。
    ⚙️ 同步模式 (Sync)
    适合简单的脚本编写,逻辑直观。
    示例:依次打开三个浏览器,访问百度并截图。
fromplaywrightimportsync_playwrightwithsync_playwright()asp:forbrowser_typein[p.chromium,p.firefox,p.webkit]:browser=browser_type.launch()page=browser.newPage()page.goto('https://baidu.com/')page.screenshot(path=f'example-{browser_type.name}.png')browser.close()

⚡️ 异步模式 (Async)
结合 asyncio,可大幅提升效率,同时控制多个浏览器。

importasynciofromplaywrightimportasync_playwrightasyncdefmain():asyncwithasync_playwright()asp:forbrowser_typein[p.chromium,p.firefox,p.webkit]:browser=awaitbrowser_type.launch()page=awaitbrowser.newPage()awaitpage.goto('http://baidu.com/')awaitpage.screenshot(path=f'example-{browser_type.name}.png')awaitbrowser.close()asyncio.get_event_loop().run_until_complete(main())

📱 移动端模拟
Playwright 还能模拟移动端设备,包括地理位置权限等。
示例:模拟 iPhone 11 Pro 访问 Google 地图并定位。

fromplaywrightimportsync_playwrightwithsync_playwright()asp:# 加载 iPhone 11 Pro 配置iphone_11=p.devices['iPhone 11 Pro']browser=p.webkit.launch(headless=False)context=browser.newContext(**iphone_11,locale='en-US',geolocation={'longitude':12.492507,'latitude':41.889938},permissions=['geolocation'])page=context.newPage()page.goto('https://maps.google.com')page.click('text="Your location"')page.screenshot(path='colosseum-iphone.png')browser.close()
  1. 总结
    Playwright 相比 Selenium 等传统工具,优势非常明显:

不足之处:
目前生态和中文文档还在完善中,相比 Selenium 庞大的社区,Playwright 的中文教程相对较少。但随着微软的推广,未来可期。
项目地址:云效- git@codeup.aliyun.com:691d382079c766a0475d787a/PyCharmMiscProject.git
官方文档: Playwright Python Docs
欢迎点赞、在看、分享!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 5:17:37

MyBatis 全方位详解:Java 主流持久层框架实战解析

在 Java 企业级开发中,数据库持久化操作是项目开发的核心基础环节。原生 JDBC 代码冗余、资源管理繁琐、SQL 与代码耦合严重,而全自动 ORM 框架又存在灵活性不足、SQL 不可控的问题。MyBatis 作为一款轻量级、半自动化的持久层 ORM(对象关系映…

作者头像 李华
网站建设 2026/7/14 5:15:36

从零到一:手动构建高可用K8s+Docker集群(实战指南)

1. 环境准备与基础配置在开始构建高可用Kubernetes集群之前,我们需要做好充分的环境准备。我建议使用3台及以上配置相同的CentOS 7/8或Ubuntu 20.04 LTS服务器,每台至少4核CPU、8GB内存和50GB磁盘空间。在实际项目中,我曾遇到过内存不足导致k…

作者头像 李华
网站建设 2026/7/14 5:15:14

混沌工程的资料

混沌工程是一种通过在分布式系统的生产或类生产环境中,主动、受控地引入故障,以实验方式发现系统潜在弱点、验证其容错与恢复能力,从而提升系统韧性的工程实践方法,由Netflix在2010年前后首创,是保障云原生、微服务架构…

作者头像 李华
网站建设 2026/7/14 5:14:05

一个 CompletableFuture,把 CPU 打满了:默认线程池的线上坑

一个 CompletableFuture,把 CPU 打满了:默认线程池的线上坑接口明明只是想并行查几个服务。 加上 CompletableFuture 后,响应一开始确实快了。 结果高峰期 CPU 打满、接口超时、异步任务堆积,最后发现:所有任务都挤进了…

作者头像 李华
网站建设 2026/7/14 5:13:53

2FA并非万能!这五个漏洞让你账号仍危险

很多人觉得开了 2FA 就万事大吉了。技术上说,2FA 确实能阻止 99% 的自动化攻击。但安全是链条——最薄弱的环节决定整体强度。而这五个漏洞,在大多数人的安全设置中都存在,却很少有人注意到。漏洞一:主邮箱没开 2FA 这是最致命的一…

作者头像 李华
网站建设 2026/7/14 5:12:32

二、使用metasploit攻击windows(“永恒之蓝”漏洞)

前提: 1、已经准备好另一台带着windows7的电脑或者已打开windows7虚拟机(用作靶向机),windows7不知道怎么装的可以看我另一篇笔记VMware安装windows7虚拟机-CSDN博客; 2、靶机和kali要处在同一网段,最省事的…

作者头像 李华