基于aardio web.view2库和python playwright包的内嵌浏览器自动化操作

通过cdp协议可以实现playwright操控webview。

新建Python窗口工程

修改pip.aardio

修改pip.aardio,并执行,安装playwright。

cpp 复制代码
//安装模块
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

cpp 复制代码
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

相关推荐
2502_921286076 分钟前
【企业网络管理】DHCP 与 SAMBA:从协议原理到企业级实战配置全解析
开发语言·php
矮小的方盒8 分钟前
关于大型网站技术演进的思考(一)--存储的瓶颈(1)
开发语言
Maiko Star11 分钟前
Python核心语法——函数
开发语言·python
linzᅟᅠ14 分钟前
README
人工智能·python
瓶中怪1 小时前
ROS2 机器人软件系统
linux·c++·python·ubuntu·vmware·ros2·机器人软件开发
满怀冰雪1 小时前
22_Runnable接口源码拆解_LCEL管道语法背后_invoke_stream_batch究竟做了什么
python·batch
大气的小蜜蜂1 小时前
基于Python+Django的健身房管理系统实现:核心亮点全流程解析
开发语言·python·django
天空'之城1 小时前
Linux 系统编程 04:进程基础
linux·开发语言·进程基础
2501_943782351 小时前
【共创季稿事节】猜数字游戏:二分法思维与交互式反馈
前端·游戏·microsoft·harmonyos·鸿蒙·鸿蒙系统
2zcode1 小时前
免费开源项目文档:基于MATLAB图像处理的药片检测与计数系统设计与实现
开发语言·图像处理·matlab