通过cdp协议可以实现playwright操控webview。
新建Python窗口工程
修改pip.aardio
修改pip.aardio,并执行,安装playwright。
//安装模块
import process.python.pip;
//process.python.path = "python.exe";
/*
安装模块。
参数可以用一个字符串指定多个 pip 参数,参数以空格分开。
也可以用多个 aardio 参数指定多个 pip 参数,aardio 自动合并所有参数并自动处理转义。
*/
process.python.pip("install playwright");
//如果指定的模块未安装,则调用 pip 安装
// process.python.pip.require("请指定要安装的模块名称");
console.pause();
实现playwright操控webview
import win.ui;
/*DSG{{*/
mainForm = win.form(text="playwright测试";right=957;bottom=708)
mainForm.add()
/*}}*/
import web.view2;
//第4个参数为0则开启远程端口,取空闲端口号
wb = web.view2(mainForm,,0);
import string.template
html1 = `
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
# 使用chromium.connect_over_cdp远程连接webview
browser = playwright.chromium.connect_over_cdp("http://127.0.0.1:${port}")
context = browser.contexts[0]
page = context.pages[0]
page.goto("https://www.baidu.com/")
page.locator("#kw").click()
page.locator("#kw").fill("附加webview测试")
page.get_by_role("button", name="百度一下").click()
with sync_playwright() as playwright:
run(playwright)
`
html = string.template(html1).format(
port = wb.remoteDebuggingPort;
)
import process.python;
process.python.version = "3.9.13";
process.python.win32 = true;
process.python.exec(html);
mainForm.show();
return win.loopMessage();
相关链接
https://mp.weixin.qq.com/s/F6sLUiY0v0YWyYDYSO2L4Q