我已经用 Python 安装了 playwright。 我有一个可以打开远程调试的应用程序。使用 chromium.connect_over_cdp(websocket_url),我能够连接到相同的内容并工作。
但是我需要相同的记录选项,即剧作家代码生成器。
在这种情况下如何实现这一点?
很遗憾,Playwright 本身并不能让你将代码生成器附加到现有的 DevTools 会话。代码生成器依赖于 Playwright 启动并控制浏览器实例才能捕获用户交互并生成代码。
解决方法:
虽然不能直接附加代码生成器,你可以通过以下方法实现类似的目标:
-
使用 Playwright Inspector:
-
在使用
chromium.connect_over_cdp()
建立连接后,可以使用page.pause()
方法暂停执行并打开 Playwright Inspector。 - Inspector 会显示当前页面的 DOM 结构,并允许你手动执行操作,Playwright 会记录下这些操作并生成对应的代码。
```python from playwright.sync_api import sync_playwright
with sync_playwright() as p: browser = p.chromium.connect_over_cdp('your_websocket_url') page = browser.new_page() page.goto("https://example.com") page.pause() # 这将打开 Playwright Inspector # 在 Inspector 中与页面交互 ```
-
在使用
-
使用 Playwright Events:
-
你可以监听 Playwright 提供的各种事件,例如
page.on('request')
或page.on('response')
,并根据这些事件记录你需要的信息。 - 这需要你编写更多代码来处理事件并提取必要的信息,但提供了更大的灵活性。
```python from playwright.sync_api import sync_playwright
def log_request(request): print(f"Request URL: {request.url}")
with sync_playwright() as p: browser = p.chromium.connect_over_cdp('your_websocket_url') page = browser.new_page() page.on("request", log_request) page.goto("https://example.com") # ... ```
-
你可以监听 Playwright 提供的各种事件,例如
总结:
虽然无法直接将代码生成器附加到现有的 DevTools 会话,但可以使用 Playwright Inspector 或事件监听机制来实现类似的功能,记录操作并获取代码。选择哪种方法取决于你的具体需求和技术水平。
标签:python,playwright,playwright-python From: 78781933