问题描述
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定位