当前位置: 首页 > news >正文

aardio 简单网页自动化

WebView自动化,以前每次重复做网页登录、搜索这些操作时都觉得好麻烦,现在终于能让程序替我干活了,赶紧记录下这个超实用的技能!

一、初次接触WebView

WebView自动化就像给程序装了个"网页浏览器",第一步得先学会加载网页:

import win.ui;
import web.view;var winform = win.form(text="WebView自动化示例";right=759;bottom=469)var wb = web.view(winform); 
wb.go("https://www.baidu.com")winform.show();
win.loopMessage();

截图一

运行这段代码时,屏幕上突然弹出一个带浏览器的窗口,百度网页自己就打开了!原来web.view就是那个"浏览器控件",wb.go()就像我们在地址栏输入网址一样。

二、模拟点击

试完加载网页,我又学了怎么让程序点击按钮。比如百度的"搜索"按钮,用这行代码就能搞定:

wb.waitEle("#su","this.click()");

完整代码是这样的:

import win.ui;
import web.view;var winform = win.form(text="WebView自动化示例";right=759;bottom=469)var wb = web.view(winform); 
wb.go("https://www.baidu.com")
winform.show();
wb.wait()wb.waitEle("#su","this.click()");win.loopMessage();

这里#su是百度搜索按钮的CSS选择器,this.click()就是模拟点击动作。

三、让程序替我打字

最让我惊喜的是程序还能在输入框里打字。比如在百度搜索框输入"aardio":

import win.ui;
import web.view;var winform = win.form(text="WebView自动化示例";right=759;bottom=469)var wb = web.view(winform); 
wb.go("https://www.baidu.com")
winform.show();
wb.wait()var input = wb.cdpWaitQuery("#kw")wb.cdp("Input.insertText",{text="aardio"})win.loopMessage();

"#kw"是百度搜索框的标识,Input.insertText就像手指在键盘上敲字一样。我试了试,程序输入的速度比我手敲快多了!

四、挑战

今天的挑战是组合所有技能:打开百度→输入"aardio教程"→点击搜索。写出的代码居然只有几行:

import win.ui;
import web.view;var winform = win.form(text="WebView自动化示例";right=759;bottom=469)var wb = web.view(winform); 
wb.go("https://www.baidu.com")
winform.show();
wb.wait()var input = wb.cdpWaitQuery("#kw")wb.cdp("Input.insertText",{text="aardio教程"})wb.waitEle("#su","this.click()");win.loopMessage();

看着程序一步步执行:网页打开→文字自动输入→搜索按钮自己点击,最后跳转到搜索结果页,我简直惊呆了!原来重复的网页操作真的能交给程序去做。

五、总结

今天最大的收获是发现WebView自动化就像给程序赋予了"网页操作能力"。那些我觉得繁琐的点击、输入动作,对程序来说只是几行代码的事。

http://www.lqws.cn/news/175807.html

相关文章:

  • 大模型安全测试报告:千问、GPT 全系列、豆包、Claude 表现优异,DeepSeek、Grok-3 与 Kimi 存在安全隐患
  • 在.NET Core控制器中获取AJAX传递的Body参数
  • 小牛电动NXT,市场销量第一
  • vscode .husky/pre-commit: line 4: npx: command not found
  • C++ 基础特性深度解析
  • 【AI论文】超越80/20规则:高熵少数令牌驱动LLM推理的有效强化学习
  • 3步布局关键词让流量更精准
  • Spring Cloud核心组件深度解析(2025终极指南)
  • 【业务框架】3C-相机-Cinemachine
  • EasyRTC嵌入式音视频通信SDK助力物联网/视频物联网音视频打造全场景应用
  • python报错No module named ‘tensorflow.keras‘
  • rk3588 区分两个相同的usb相机
  • 机器学习KNN算法全解析:从原理到实战
  • 边缘计算服务器
  • linux 故障处置通用流程-36计-28-37
  • npm error Cannot read properties of null (reading ‘matches‘)
  • Vue在线预览excel、word、ppt等格式数据。
  • 彻底解决 MFC 自绘控件闪烁
  • 学习设计模式《十二》——命令模式
  • 数论——同余问题全家桶3 __int128和同余方程组
  • 【Linux】(1)—进程概念-④fork、僵尸进程、孤儿进程
  • vue3 按钮级别权限控制
  • 数学复习笔记 28
  • camera功能真的那么难用吗
  • UniApp系列
  • 静态相机中的 CCD和CMOS的区别
  • [ElasticSearch] DSL查询
  • 软件功能测试目的是啥?如何通过测试用例确保产品达标?
  • java教程笔记(十一)-泛型
  • 软件功能测试报告都包含哪些内容?