Playwright 基础教程:元素拖拽、坐标获取与文本提取实战
前言
Playwright 是微软开源的自动化测试工具,支持多种浏览器和语言。在 Web 自动化测试及爬虫开发中,我们经常需要处理复杂的用户交互,如拖拽操作,或者需要获取元素的精确位置信息以及页面内的文本数据。本文将详细介绍如何使用 Playwright 实现元素拖拽、计算元素坐标、获取网页源码以及提取元素内文本,并提供完整的代码示例。
环境准备与连接方式
在使用 Playwright 之前,确保已安装 Python 环境并安装了 playwright 库。可以通过以下命令安装依赖:
pip install playwright
playwright install
Playwright 提供了两种主要的浏览器连接模式:连接到已打开的浏览器或启动新的浏览器实例。
1. 连接已打开的浏览器
这种方式适用于调试场景,可以查看浏览器实际运行状态。通过 CDP (Chrome DevTools Protocol) 端口连接。
from playwright.sync_api import sync_playwright
class BrowserConnection:
def __init__(self):
self.playwright = sync_playwright().start()
# 连接本地已启动的 Chrome 浏览器,默认端口为 9223
browser = self.playwright.chromium.connect_over_cdp("http://127.0.0.1:9223")
self.default_context = browser.contexts[0]
self.page = self.default_context.pages[0]
2. 启动新浏览器实例
这是最常用的方式,适合自动化脚本执行。可以配置无头模式(headless)或可视化模式。
class NewBrowserSession:
def __init__(self, url):
playwright = sync_playwright().start()
# headless=False 表示显示浏览器窗口,便于观察
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
self.page = context.new_page()
self.page.goto(url)
元素拖拽操作 (Drag and Drop)
拖拽是常见的用户交互行为,例如文件上传、排序列表等。Playwright 提供了 方法简化此过程。


