aardio 谷歌浏览器自动化 (七) 切换框架

本文介绍了一种自动化测试技术,针对嵌套在iframe框架中的网页元素,通过Python的selenium库进行操作。首先,定位到外层iframe,然后切换到内层iframe,最终找到并获取h1标签内的文本内容。示例代码展示了如何层层深入切换框架并展示页面内容的过程,对于进行网页自动化测试具有指导意义。

有时候需要自动化的元素在iframe 框架中,需要将当前页面切换为框架,才可以查找到

比如:下面页面源代码中 h1 在二层iframe中,我们要找出框架对象,然后使用switchFrame函数切换,一层层地切换框架,最终取出h1内容

示例:切换框架,显示页面内容

实现代码:

import chrome.driverex
import process.imageView
import console

driver = chrome.driverex()

//禁止显示浏览器被控制提示
driver.disableAutomation()

wb = driver.startBrowser()

wb.go("https://www.runoob.com/try/try.php?filename=tryhtml_iframe_height_width")
wb.wait()

//查找框架对象
iframe = wb.getEle("xpath",`//*[@id="iframeResult"]`)

//切换到框架
wb.switchFrame(iframe)
//查找二级框架对象
iframe2 = wb.getEle("xpath",`/html/body/iframe`)
wb.switchFrame(iframe2)

//查找h3
h3 = wb.getEle("tag name","h1")

win.msgbox(h3.getText())

 

 

### 使用 Aardio 实现微信自动化的解决方案与示例代码 Aardio 是一种轻量级的脚本语言,常用于自动化任务和 GUI 开发。在实现微信自动化时,可以通过模拟鼠标点击、键盘输入或调用微信 API 的方式完成特定操作。以下是一些可能的解决方案和示例代码。 #### 1. 模拟鼠标和键盘操作 通过 Aardio 的 `winapi` 模块可以实现对微信窗口的操作,例如发送消息、打开聊天窗口等。这种方式依赖于识别微信界面元素的位置,并通过鼠标点击或键盘输入完成任务。 ```aardio import win.ui; import win.api; // 获取微信主窗口句柄 var hwnd = win.api.FindWindow("WeChatMainWndForPC", null); if(hwnd){ // 将窗口置于前台 win.api.SetForegroundWindow(hwnd); // 模拟鼠标点击(假设聊天框位置为 (x, y)) var x = 100; // 聊天框横坐标 var y = 200; // 聊天框纵坐标 win.api.mouse_event(0x0002, x, y, 0, 0); // 鼠标左键按下 win.api.mouse_event(0x0004, x, y, 0, 0); // 鼠标左键释放 // 输入文本 win.api.keybd_event(0x10, 0, 0, 0); // 按下 Shift 键 win.api.SendMessage(hwnd, 0x0102, 0x48, 0); // 发送字符 'H' win.api.keybd_event(0x10, 0, 0x0002, 0); // 释放 Shift 键 win.api.SendMessage(hwnd, 0x0102, 0x65, 0); // 发送字符 'e' win.api.SendMessage(hwnd, 0x0102, 0x6C, 0); // 发送字符 'l' win.api.SendMessage(hwnd, 0x0102, 0x6C, 0); // 发送字符 'l' win.api.SendMessage(hwnd, 0x0102, 0x6F, 0); // 发送字符 'o' // 按下 Enter 键发送消息 win.api.keybd_event(0x0D, 0, 0, 0); // 按下 Enter 键 win.api.keybd_event(0x0D, 0, 0x0002, 0); // 释放 Enter 键 } else { console.log("未找到微信窗口"); } ``` 此方法适用于简单的消息发送任务,但需要精确知道目标窗口和控件的位置[^1]。 #### 2. 使用微信 Web 版 API 微信 Web 版提供了一些非官方的 API 接口,可以用来实现更复杂的自动化任务。需要注意的是,这些接口并非由腾讯官方提供,可能存在安全风险或随时被封禁。 以下是一个基于微信 Web 版的简单示例,使用 Aardio 调用 HTTP 请求实现消息发送: ```aardio import http; import json; // 登录微信 Web 版并获取 token(需自行实现登录逻辑) var token = "your_token_here"; // 发送消息到指定用户 var url = "https://web.wechat.com/cgi-bin/mmwebwx-bin/webwxsendmsg"; var data = { "touser": "user_id", "msg": "Hello from Aardio!", "token": token }; var response = http.postJson(url, data); if(response.status == 200){ console.log("消息发送成功"); } else { console.log("消息发送失败:" + response.text); } ``` 此方法需要用户自行处理微信 Web 版的登录流程,并提取必要的会话信息和 token[^1]。 #### 3. 第三方库与工具 除了直接编写代码外,还可以借助一些第三方工具或库来简化开发过程。例如,`itchat` 是一个基于 Python 的微信自动化库,虽然它不支持 Aardio,但可以作为参考实现类似功能。 如果需要进一步优化代码或扩展功能,建议结合嵌入式相关资源进行学习。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值