【发布时间】:2022-11-22 03:09:57
【问题描述】:
我正在尝试从 Selenium 转移到 Playwright 以完成一些网络抓取任务。
也许我养成了让 Selenium 一边运行浏览器一边测试运行中的命令和选择器的坏习惯。
有什么方法可以使用 Playwright 实现类似的效果吗?
到目前为止,我所取得的成就是在控制台上运行 playwright,类似于:
from playwright.sync_api import sync_playwright
with sync_playwright() as pw:
browser = pw.chromium.launch(headless=False)
page = browser.new_page()
page.goto('https://google.com')
page.pause()
我得到一个浏览器窗口和一个 Playwright Inspector - 从那里我的命令或变量都不会执行。
【问题讨论】:
-
此代码应在交互模式下工作。只需将超时设置为 0。或者。如果您真的需要脚本并且不需要安全性,
while True: eval(input(">>> "))? -
我在 PyCharm 上使用 Python 控制台,在 page.pause() 之后没有命令生效。如果我将命令添加到块中说:
page.get_by_role("button", name="Reject all").click()它将在重新启动浏览器后工作 -
是的,它有点管用。不幸的是我不能将结果分配给任何变量,或者如果我得到异常它只会关闭事件循环。
-
在
page.pause()之后,您是否尝试从浏览器开发工具控制台调用playwright.resume()?