基于aardio web.view2库和python playwright包的内嵌浏览器自动化操作
通过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.templatehtml1 = `
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:# 使用chromium.connect_over_cdp远程连接webviewbrowser = 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
相关文章:
基于aardio web.view2库和python playwright包的内嵌浏览器自动化操作
通过cdp协议可以实现playwright操控webview。 新建Python窗口工程 修改pip.aardio 修改pip.aardio,并执行,安装playwright。 //安装模块 import process.python.pip; //process.python.path "python.exe";/* 安装模块。 参数可以用一个字…...
《数据仓库与数据挖掘》 总复习
试卷组成 第一章图 第二章图 第三章图 第四章图 第五章图 第六章图 第九章图 第一章 DW与DM概述 (特点、特性) DB到DW 主要特征 (1)数据太多,信息贫乏(Data Rich, Information Poor)。 &a…...
EtherCAT主站IGH-- 8 -- IGH之domain.h/c文件解析
EtherCAT主站IGH-- 8 -- IGH之domain.h/c文件解析 0 预览一 该文件功能`domain.c` 文件功能函数预览二 函数功能介绍1. `ec_domain_init`2. `ec_domain_clear`3. `ec_domain_add_fmmu_config`4. `ec_domain_add_datagram_pair`5. `ec_domain_finish`6. `ecrt_domain_reg_pdo_en…...
《昇思25天学习打卡营第10天|使用静态图加速》
文章目录 今日所学:一、背景介绍1. 动态图模式2. 静态图模式 三、静态图模式的使用场景四、静态图模式开启方式1. 基于装饰器的开启方式2. 基于context的开启方式 总结: 今日所学: 在上一集中,我学习了保存与加载的方法ÿ…...
【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十二)
课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 32 节) P32《31.通知-基础通知》 基础文本类型通知:briefText 没有用,写了也白写。 长文本类型…...
六西格玛绿带培训如何告别“走过场”?落地生根
近年来,六西格玛绿带培训已经成为了众多企业提升管理水平和员工技能的重要途径。然而,不少企业在实施六西格玛绿带培训时,往往陷入形式主义的泥潭,导致培训效果大打折扣。那么,如何避免六西格玛绿带培训变成“走过场”…...
Linux——提取包文件到指定目录,命令解释器-shell,type 命令
- 提取包文件到指定目录 bash tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径] tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径] tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径] ### 示例 - 将/etc下所有内容打包压缩到/root目录中 bash [rootserver ~]# tar -cvf taretc…...
【最详细】PhotoScan(MetaShape)全流程教程
愿天下心诚士子,人人会PhotoScan! 愿天下惊艳后辈,人人可剑开天门! 本教程由CSDN用户CV_X.Wang撰写,所用数据均来自山东科技大学视觉测量研究团队,特此鸣谢!盗版必究! 一、引子 Ph…...
Excel多表格合并
我这里一共有25张表格: 所有表的表头和格式都一样,但是内容不一样: 现在我要做的是把所有表格的内容合并到一起,研究了一下发现WPS的这项功能要开会员的,本来想用代码撸出来的,但是后来想想还是找其他办法,后来找到"易用宝"这个插件,这个插件可以从如下地址下载:ht…...
AI作画工具深度剖析:Midjourney vs. Stable Diffusion (SD)
在人工智能技术的推动下,艺术创作的边界被不断拓宽,AI作画工具成为数字艺术家与创意人士的新宠。其中,Midjourney与Stable Diffusion(SD)作为当前领域的佼佼者,以其独特的算法机制、丰富的功能特性及高质量…...
ASP.NET Core Blazor 5:Blazor表单和数据
本章将描述 Blazor 为处理 HTML 表单提供的特性,包括对数据验证的支持。 1 准备工作 继续使用上一章项目。 创建 Blazor/Forms 文件夹并添加一个名为 EmptyLayout.razor 的 Razor 组件。本章使用这个组件作为主要的布局。 inherits LayoutComponentBase<div …...
C++ 仿QT信号槽二
// 实现原理 // 每个signal映射到bitset位,全集 // 每个slot做为signal的bitset子集 // signal全集触发,标志位有效 // flip将触发事件队列前置 // slot检测智能指针全集触发的标志位,主动运行子集绑定的函数 // 下一帧对bitset全集进行触发清…...
联合概率密度函数
目录 1. 什么是概率密度由联合概率密度求概率参考链接 1. 什么是概率密度 概率密度到底在表达什么? 外卖在20-40分钟内送达的概率 随机变量落在[20,40]之间的概率。下图中,对总面积做规范化处理,令总面积1, f ( x ) f(x) f(x)则成…...
【Java10】成员变量与局部变量
Java中的变量只有两种:成员变量和局部变量。 和C不同,没有全局变量了。 成员变量,field,我习惯称之为**”属性“**(但这些年,因为attribute更适合被叫做属性,所以渐渐不这么叫了)。 …...
Spring Session与分布式会话管理详解
随着微服务架构的普及,分布式系统中的会话管理变得尤为重要。传统的单点会话管理已经不能满足现代应用的需求。本文将深入探讨Spring Session及其在分布式会话管理中的应用。 什么是Spring Session? Spring Session是一个用于管理HttpSession的Spring框…...
从0开始学习pyspark--Spark DataFrame数据的选取与访问[第5节]
在PySpark中,选择和访问数据是处理Spark DataFrame的基本操作。以下是一些常用的方法来选择和访问DataFrame中的数据。 选择列(Selecting Columns): select: 用于选择DataFrame中的特定列。selectExpr: 用于通过SQL表达式选择列。 df.select…...
Fastjson首字母大小写问题
1、问题 使用Fastjson转json之后发现首字母小写。实体类如下: Data public class DataIdentity {private String BYDBSM;private String SNWRSSJSJ;private Integer CJFS 20; } 测试代码如下: public static void main(String[] args) {DataIdentit…...
GuLi商城-商品服务-API-品牌管理-效果优化与快速显示开关
<template><div class"mod-config"><el-form :inline"true" :model"dataForm" keyup.enter.native"getDataList()"><el-form-item><el-input v-model"dataForm.key" placeholder"参数名&qu…...
如何成为C#编程高手?
成为C#编程高手需要时间、实践和持续的学习。以下是一些建议,可以帮助你提升C#编程技能: 深入理解基础知识: 确保你对C#的基本语法、数据类型、控制结构、面向对象编程(OOP)原则有深刻的理解。学习如何使用Visual Stud…...
SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter]
SpringBoot自定义starter SpringBoot与AOPSpringBoot集成Mybatis-整合druid在不使用启动器的情况下,手动写配置类进行整合使用启动器的情况下,进行整合 SpringBoot启动原理源码解析创建SpringApplication初始化SpringApplication总结 启动 SpringBoot自定义Starter定…...
Zotero Reference插件完全指南:5步实现PDF文献自动化管理
Zotero Reference插件完全指南:5步实现PDF文献自动化管理 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference Zotero Reference是一款革命性的Zotero插件,专门…...
CH340系列芯片选型指南与外围电路设计实战
1. CH340系列芯片选型指南 第一次接触CH340系列芯片时,我被它丰富的型号搞得眼花缭乱。作为国内最常用的USB转串口芯片之一,CH340系列凭借稳定的性能和亲民的价格,在嵌入式开发领域占据重要地位。但面对十几种不同型号,新手往往会…...
LongCat-Image-Edit图片编辑神器:5分钟快速部署,一句话精准改图
LongCat-Image-Edit图片编辑神器:5分钟快速部署,一句话精准改图 1. 产品核心能力介绍 LongCat-Image-Edit是美团LongCat团队推出的开源图像编辑模型,它让复杂的图片编辑变得像说话一样简单。这个模型有三大杀手锏: 一句话精准编…...
如何将Uvicorn部署到Azure Functions Premium Plan:完整指南
如何将Uvicorn部署到Azure Functions Premium Plan:完整指南 【免费下载链接】uvicorn An ASGI web server, for Python. 🦄 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn是Python生态中备受推崇的ASGI Web服务器ÿ…...
CANoe实战:手把手教你用J1939.dbc发送超8字节长帧报文(附完整CAPL代码)
CANoe实战:J1939长帧报文分包发送全解析与CAPL代码优化 在汽车电子开发领域,J1939协议作为商用车通信标准,其长帧报文处理一直是工程师面临的典型挑战。当数据长度超过CAN总线单帧8字节限制时,如何高效实现分包传输?本…...
Spatial Audio(空间音频)与多声道环绕声:从5.1到7.1的沉浸式体验升级
1. 从立体声到环绕声:音频技术的进化之路 记得我第一次在朋友家体验5.1声道家庭影院时,那种子弹从耳边呼啸而过的感觉让我彻底震撼了。这完全颠覆了我对"好音质"的认知——原来声音可以如此立体、如此真实。要理解现代的空间音频技术…...
【架构实战】分布式事务解决方案
一、分布式事务的挑战 在微服务架构下,一个业务操作可能涉及多个服务的数据修改。传统的本地事务无法保证跨服务的数据一致性。 经典场景: 用户下单 → 订单服务扣库存 → 支付服务扣余额 → 物流服务创建运单任何一步失败,都需要回滚之前的操…...
Meshery 1.0正式发布,为云原生基础设施提供新的管控层
跨多云环境管理Kubernetes基础设施长期以来产生了YAML文件泛滥、配置漂移以及依赖个人而非系统的知识问题。生成基础设施配置的AI工具速度超过了团队审查能力,使这个问题更加难以控制。开源Meshery技术正是为了解决这一问题而构建的。Meshery v1.0现已发布ÿ…...
iPhone 抓包失败 4 种具体情况逐个解决方法
抓不到包这个描述太模糊了,在实际调试中,这句话至少对应四种完全不同的情况: 完全没有请求只有浏览器能抓到能抓到但 HTTPS 解不开能抓到但数据不完整 如果不先分清楚是哪一种,就会一直重复安装证书或改代理配置。一、先做一个验证…...
swoole方案 实时监控大盘推送中心
业务服务 --写--> Kafka ---> Swoole消费 --WebSocket推--> 浏览器ECharts实时刷新Kafka 当缓冲层,业务打点不管推送快不快,Swoole 从 Kafka 拉数据,有新数据就推给所有看板页面。---代码<?php// composer require longlang/php…...
