如何元素定位
首先找到该元素,(微信开发工具 > 调试器 > Wxml)
根据元素不同位置、属性、标签等,自行选择元素定位方式,支持
- 选择器 selector (id/class/标签/属性等)
- 选择器 selector + inner_text/text_contains/value
- XPath定位
参考 简单选择器 或 get_element()参数说明
如何选择定位元素方式
- 有自定义组件元素
- 使用[>>>]连接自定义组件及其后代元素
custom-element1>>>.custom-element2>>>.the-descendant
custom-element1
和.custom-element2
必须是自定义组件标签或者能获取到自定义组件的选择器 - 先get自定义组件, 再使用Element.get_element获取其子节点
- XPath定位
- 使用[>>>]连接自定义组件及其后代元素
- 普通元素
- XPath定位
- 选择器 selector(ID选择器/class选择器/标签选择器/子元素选择器/后代选择器/多选择器的并集)
为什么小程序底部菜单栏页面跳转失败
例如以下报错信息
minium.framework.exception.MiniAppError: can not redirectTo a tabbar page
该页面为tabbar页面,需调用switch_tab()跳转 注:页面url前面需加上 “/”
自定义日志信息
Minium框架提供Logger类,自定义各级别日志信息
self.logger.info("")
self.logger.debug("")
self.logger.warn("")
...
用例执行耗时优化
缩短元素查找时间
例如该用例中获取元素方式,查找慢,会导致用例执行时长长
self.page.get_element("view", inner_text="xxx", max_timeout=5)
元素定位用基础标签view、text方式,时间相对会长,建议用特别的class等css选择器定位,或者尝试用xpath(//view)
Minium底层优化
为减少用例耗时及执行效率,Minium底层做了一些优化
- 元素定位优化
原先get_element匹配text的流程是先get_element再判断其text属性是否匹配,然后筛选出一个合适的element。这个流程会导致多次通信
优化后将筛选流程放在小程序侧进行,可以减少交互通信时间,增加效率
- 处理授权弹窗优化
小程序在线检测/原生授权窗口残留等异常检测,有异常情况检测时间10s内,没异常情况下耗时1s以内
- 初始化优化(拉起小程序等)
连接超时问题
本地调试,控制台出现
Exception: receive from remote timeout, id: f933c71e-bc2b-41b7-b286-29c65dd0d4d8
报错时
一般是因为ide的通道被远程调试占用了,请检查ide是否有打开。建议关闭工具,重新执行,防止端口被占用。或者网络环境等原因引起