websocket 剧作家python连接打开浏览器

wwodge7n  于 2023-08-05  发布在  Python
关注(0)|答案(1)|浏览(152)

这是在robot framework's playwright library的上下文中,但我还没有收到他们的任何回复。希望一些编剧Maven能帮到我。

**我试图连接到一个现有的和已经打开的浏览器与playwright.**以下this tutorial,我得到了它与 selenium 工作,但不是与playwright.

我相信我正在尝试复制这个server-client dynamic
我的步骤是:
1.打开浏览器:可以是手动的(就像在 selenium 的情况下),但我认为与剧作家它必须具体是一个剧作家进程/浏览器。因此,我选择了npx playwright launch-server --browser chromium(也尝试过npx playwright open <url>)。
1.我使用launch-server输出的url(例如:ws://127.0.0.1:49216/4eed2730f31b8a5af258df739cc319fe)到connect_to_browser()并看到Successfully connected to browser。在这个代码片段中,我打开了一个无头浏览器,可以导航等。在这一步中,我也尝试了在持久化上下文中进行混合,基于这个例子,但也没有运气。在这一点上,但至少在这一点上,我有一个浏览器启动和运行在我的屏幕上,似乎是连接到剧作家服务器的端口49216。
1.我现在需要一些其他的代码来连接和使用这个现有的浏览器。因此,在这段代码中,我也使用了connect_to_browser(),没有任何明显的问题,但如果我想在这段代码中做任何事情,我必须打开一个新的浏览器,而不是能够使用现有的浏览器。
如果我比较第2步和第3步中代码的浏览器和上下文目录,它们不匹配。这就像虽然两者都通过该ws url连接,但它们不能相互交谈或了解对方?
顺便说一句,我也试过用playwright_process_port启动剧作家库,但我得到了RuntimeError: Could not connect to the playwright process

7bsow1i6

7bsow1i61#

使用Playwright,可以使用Chrome DevTools协议(CDP)连接到正在运行的基于Chromium的浏览器。
启动浏览器设置远程调试端口:

chrome --remote-debugging-port=1243

字符串
导航到某个页面,然后使用方法connect_over_cdp(Playwright文档)连接到浏览器:

from playwright.sync_api import sync_playwright, Playwright

def run(playwright: Playwright):
    chromium = playwright.chromium
    browser = chromium.connect_over_cdp('http://localhost:1243')
    context = browser.contexts[0]
    page = context.pages[0]
    # find an element and act on it
    
with sync_playwright() as playwright:
    run(playwright)


为了澄清,playwright是一个NodeJS库。有一个Python wrapper和一个Robot Framework Package 器,称为Browser Library。这个问题和这个答案涉及Python Package 器。
在撰写本文时,浏览器库不支持此功能,但已计划好。监视this issue以了解何时实现了该功能。

相关问题