网站首页 > 技术文章 正文
1. 引言
在前两章中介绍的aardio如何调用playwright和自动化webview2,但是有反馈说这样还不如直接用python写playwright然后打包,不用aardio。
为什么要用aardio来调用Python Playwright,原因有几个:
- 打包简单,一键发布,体积小
- aardio的webview2 api已经封装好,使用简单
- aardio写窗口界面非常快捷简单,漂亮美观。(这个在以前的章节有讲过)
- 可以方便地进行实时交互。(这个正是今天的主题)
2. 交互案例分析
效果图:

在实际应用中,通常需要将自动化操作呈现给用户看,让用户了解实时进度,并加入开始,结束按钮来进行互动(只是举例,如果用来采集数据还可以加列表将采集的数据放到列表上等)
1. 自动化操作进度实时输出到文本控件
print("打开网址",flush=True)
在python里,每次操作都可以用print来输出,参数2 flush=True用来强制输出缓冲区内容
而在aardio中可以使用下面的语句来进行捕获python输出的内容,并显示到文本控件中
py.logResponse(mainForm.richedit)
2. 结束
当点击开始运行时,实际是会多出一个python进程来运行python的库,所以在结束后
应该将进行结束
mainForm.plus2.oncommand = function(id,event){
if !py return ;
py.terminate()
py = null
}
完整代码:
import win.ui;
/*DSG{{*/
mainForm = win.form(text="playwright测试";right=1114;bottom=708;bgcolor=16777215)
mainForm.add(
custom={cls="custom";text="自定义控件";left=0;top=1;right=818;bottom=702;ah=1;aw=1;z=1};
plus={cls="plus";text="开始";left=846;top=18;right=935;bottom=62;font=LOGFONT(h=-16);notify=1;z=3};
plus2={cls="plus";text="结束";left=987;top=18;right=1076;bottom=62;font=LOGFONT(h=-16);notify=1;z=4};
richedit={cls="richedit";left=822;top=73;right=1112;bottom=705;color=16711680;edge=1;font=LOGFONT(h=-16);multiline=1;z=2}
)
/*}}*/
import win.ui.css;
import web.view2;
css = win.ui.css()
mainForm.plus.skin(css.primary)
mainForm.plus2.skin(css.noble)
wb = web.view2(mainForm.custom,,,0)
mainForm.show();
import string.template
html = `
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]
print("打开网址",flush=True)
page.goto("https://www.baidu.com/")
print("输入内容",flush=True)
page.locator("#kw").click()
page.locator("#kw").fill("附加webview测试")
print("点击百度一下",flush=True)
page.get_by_role("button", name="百度一下").click()
with sync_playwright() as playwright:
run(playwright)
`
html = string.template(html).format(
port = wb.remoteDebuggingPort;
)
import process.python;
process.python.version = "3.9.13";
process.python.win32 = true;
mainForm.plus.oncommand = function(id,event){
if py return ;
mainForm.richedit.text = "" //清空原有文本
py = process.python.exec(html);
py.logResponse(mainForm.richedit)
}
mainForm.plus2.oncommand = function(id,event){
if !py return ;
py.terminate()
py = null
}
return win.loopMessage();
库下载
web.view2库在本人的扩展库上下载:
https://mp.weixin.qq.com/s/GxxAKtoCZSu6xUO_Q8WS1Q
Aardio培训资讯
如果你想进一步深入学习aardio以及其他有关应用程序开发的知识,我建议你考虑参加我们的aardio培训班。
我们的培训班旨在帮助新手开发者快速入门并掌握aardio的各种功能和技术。你将学习从基础知识到高级技巧的全方位内容,并有机会与其他开发者进行交流和分享经验。
我们的培训班不仅提供在线学习资源,还会有专业的导师进行指导和答疑。无论你是想要在个人项目中应用这些技术,还是希望在职业发展中获得竞争优势,我们的培训班将为你提供所需的支持和指导。
培训内容及福利介绍:https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
课程优势:
1.aardio零基础到精通视频,只要会打字就可以!
2.疑问解答,复杂的可以远程解决!
3.实用扩展库和例子,学习资源多!
4.完整项目开发过程,分析每一步开发遇到的问题!
5.完整的系统教程,知识全面覆盖!
如果你对aardio培训班感兴趣,可以通过以下联系方式获得更多信息,备注“报名”。我们期待能与你一起开启这个令人兴奋的学习之旅!
QQ:45561810
微信:mkoijnn33
猜你喜欢
- 2024-12-23 如何在你的项目中混合 Rust 和 Python
- 2024-12-23 一秒开挂!纯 Python 开发 Web 应用
- 2024-12-23 用 Python 与 Windows 交互 - Pywin32库
- 2024-12-23 交互式环境(Python Shell)编写Python代码
- 2024-12-23 这个用Python编写的大数据测试工具,我给100分
- 2024-12-23 Python与Mysql交互库(持续更新)
- 2024-12-23 Python解释器和交互模式
- 2024-12-23 有用的 Python 提示和技巧 — #5
- 2024-12-23 Python 语言如何和 C/C++ 语言交互使用
- 2024-12-23 简单学Python——做一个可交互的图(结合ipywidgets库)
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)