让新版Appium支持ByName定位

问题描述

Appium在1.5版本以后就不再支持ByName定位,使用ByName报异常:

org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session

解决方案:

  • 1.换其他定位方式,比如使用xpath代替
  • 2.不用换定位方式,ByName定位方式无缝兼容Appium新版

兼容ByName定位

修改文件:driver.js

  • 若通过 Node.js安装 Appium
C:\Users\yezhou\AppData\Roaming\npm\node_modules\appium\node_modules\appium-android-driver\build\lib\driver.js
  • 若安装 Appium-Desktop
C:\Users\yezhou\AppData\Local\appium-desktop\app-1.5.0\resources\app\node_modules\appium\node_modules\appium-android-driver\build\lib\driver.js

修改内容:this.locatorStrategies

this.locatorStrategies = ['xpath', 'id', 'class name', 'accessibility id', '-android uiautomator'];

改为:

this.locatorStrategies = ['xpath', 'id', 'class name', 'accessibility id', '-android uiautomator', 'name'];

修改完成之后,保存文件,再次重启Appium服务(重新退出并启动Appium),即可继续使用ByName定位

上一篇 Appium自动化测试(4)—— 安装 Appium-Desktop
下一篇 Appium运行报错:does not have permission android.permission.CLEAR_APP_USER_DATA to clear data of package
目录
文章列表
1 Android 10(Api 29)新特性适配 - 分区存储
Android 10(Api 29)新特性适配 - 分区存储
2
FreeReflection一个允许你在Android P上使用反射而没有任何限制的库
FreeReflection一个允许你在Android P上使用反射而没有任何限制的库
3
SpringBoot 2.0集成百度UidGenerator
SpringBoot 2.0集成百度UidGenerator
4
Prometheus动态发现监控targets —— 基于文件的服务发现
Prometheus动态发现监控targets —— 基于文件的服务发现
5
MySQL 与 Redis 缓存的同步方案
MySQL 与 Redis 缓存的同步方案
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。