HarmonyOS鸿蒙Next中应用UI自动化-无法使用hint属性来定位控件

HarmonyOS鸿蒙Next中应用UI自动化-无法使用hint属性来定位控件 如图,账号和密码两个输入框的控件都只有type属性。type和text属性都是空的

cke_1244.png

然后我发现下面有个属性,叫hint是做了区分的。如图

cke_6693.png

cke_7312.png

于是,我的代码就写成这样了。

输入zhanghao:(输入之前,通过坐标点击了输入框)

self.driver.input_text(BY.hint('请输入手机号/用户名/居民身份证号'), '136xxxx7404')

输入mima:输入之前,通过坐标点击了输入框)

self.driver.input_text(BY.hint('请输入登录密码'), 'Aa111111')

结果报错提示:

RuntimeError: {‘code’: 17000006, ‘message’: “No handler found for api ‘On.hint’”}

] [ErrorNo=00000]

但是通过BY这个方法是可以正常调用hint的,问题出哪了?

cke_45007.png


更多关于HarmonyOS鸿蒙Next中应用UI自动化-无法使用hint属性来定位控件的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

楼主使用的是什么版本的Hypium?

  1. 查看本地安装的Hypium版本,使用pip list;
  2. 查看对应版本的Hypium是否支持该API(路径一般为:本地路径/hypium-版本号/doc),打开.md文件,搜索关键字“hint”
  3. 2025版本的Pycharm废弃了一些api,工具还在适配。建议楼主使用2024版本Pycharm或者等Hypium插件版本发布修复。

更多关于HarmonyOS鸿蒙Next中应用UI自动化-无法使用hint属性来定位控件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我之前用的是5点几的版本,更新到最新的版本后,可以使用了,感谢提醒,

在HarmonyOS Next中,UI自动化测试框架采用ArkTS作为主要开发语言,控件定位方式已调整。hint属性不再作为标准定位属性,建议改用id、text或accessibilityLabel等属性进行控件识别。可通过UI测试框架提供的By类方法,如By.id()或By.text()实现精准定位。需检查控件是否设置了有效的可访问性属性,并确保测试脚本与鸿蒙UI组件库版本兼容。

在HarmonyOS Next的UI自动化测试框架中,hint属性目前不被支持作为定位策略。错误信息No handler found for api 'On.hint'表明框架未实现hint选择器。

替代方案:

  1. 使用支持的定位属性:如idtexttypeaccessibilityId。若控件缺乏这些属性,建议开发人员添加可访问性标识。
  2. 层级定位:结合父容器属性与索引定位,例如通过父布局定位后使用childindex匹配目标控件。
  3. 坐标操作:作为临时方案,可继续使用坐标点击,但需注意屏幕适配性。

当前代码中BY.hint()调用会失败,因框架未内置此方法。建议检查官方文档更新,或通过DevEco Testing工具获取控件完整属性,改用其他稳定定位方式。

回到顶部