appium版本在1.5以后就不再支持ByName的定位,本文章仅介绍在appium1.6.3/1.6.4/1.6.5版本下如何支持ByName定位,适用于安卓。
在使用appium1.5之后的版本时,你一定见过这个错误

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

是否很心痛,曾经的定位神器居然ByName居然不再支持了,那我以前的脚本可怎么办,此时你去各种技术论坛或者群求助,会得到两种答案

1. 换其他定位方式,比如用xpath代替

2. 使用ByAByAccessibilityId代替,但实践证明这个方法并没有取代ByName

其中第一种是可取的,换其他定位方式,本文将交给大家一个不用换定位方式不用换之前脚本的方法来完成无缝升级appium版本的定位方式

一招修改源码解决问题根源,修改方法如下:

找到你的appium\node_modules\appium-android-driver\build\lib\driver.js 文件,只需要修改其中一行即可

this.locatorStrategies = ['xpath', 'id', 'class name', 'accessibility id', '-android uiautomator','name'];//注意原本是没有最后的name的,name就是咱们修改加上的

修改完成之后,保存,再次重启appium服务,就可以继续使用ByName定位啦,完美

---------------------
作者:wuyepiaoxue789
来源:CSDN
原文:https://blog.csdn.net/wuyepiaoxue789/article/details/78411170
版权声明:本文为博主原创文章,转载请附上博文链接!

Appium新版本不再支持ByName定位了怎么办的更多相关文章

  1. appium----新版appium 1.11.1 支持ByName定位

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

  2. appium新版本不支持findElementByName,切换到findElementByAndroidUIAutomator

    appium 1.7.6 不支持findElementByName(locator)  不知道为什么? 脚本中许多这样的语句,麻烦事情多了 org.openqa.selenium.InvalidSel ...

  3. 新版appium 支持name定位的方法(没试 记录再此)

    查找路径:appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\build\lib 修 ...

  4. appium1.6.3/1.6.4/1.6.5版本下如何支持安卓下ByName定位

    1. 换其他定位方式,比如用xpath代替 2. 使用ByAccessibilityId代替,感觉没什么效果 一招修改源码解决问题根源,修改方法如下: 找到你的appium\node_modules\ ...

  5. Appium+python自动化12-appium元素定位

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性

  6. appium+python自动化50-生成定位对象模板templet(jinja2)

    前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...

  7. Python3+Appium学习笔记09-元素定位android_uiautomator

    appium是使用了uiautomator的框架的,所以uiautomator所带的定位方式.appium也是支持的 需要使用appium中find_element_by_android_uiauto ...

  8. python+Appium自动化:各种元素定位方法

    name定位 driver.find_element_by_name('飞利浦净水').click() 测试结果报错:selenium.common.exceptions.InvalidSelecto ...

  9. GitHub不再支持密码验证解决方案:SSH免密与Token登录配置

    今天提交代码,push到GitHub上,突然出现这个问题. remote: Support for password authentication was removed on August 13, ...

随机推荐

  1. python生成pdf

    代码 需要先安装wkhtmltopdf,下载路径https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmlto ...

  2. [译]Managing Vue.js State with Vuex

    原文 准备 安装 Vuex, 是Vue官方出的package, 它不是Vue内置的.需要另外安装. npm install vuex --save 然后,需要在应用启动文件启用Vuex. main.j ...

  3. sqlserver 循环取时间

    declare @str date; set @str='2015-01-08'; while DATEDIFF([day], @str , '2015-02-01')>0 begin sele ...

  4. PHP文件缓存包含三种格式

    http://developer.51cto.com/art/200912/166975.htm PHP文件缓存的速度一直是PHP程序员们关心的问题,他们一直在探讨着如何才能提高PHP文件缓存的效率来 ...

  5. luogu P3240 [HNOI2015]实验比较

    传送门 首先根据题目条件,题目中如果是=的点可以缩起来,然后\(a<b\)连边\(a\rightarrow b\),而且所有点入度为最多1,那么判掉有环的不合法情况,题目中的依赖关系就是一颗外向 ...

  6. java作业(1)

    第一题: 模仿JavaAppArguments.java示例,编写一个程序,此程序从命令行接收多个数字,求和之后输出结果. (1)设计思想 程序中设置字符串的个数,从键盘进行输入,并且将字符串转化为数 ...

  7. Socket TCP客户端和服务器的实现

    import java.io.*; import java.net.Inet4Address; import java.net.InetSocketAddress; import java.net.S ...

  8. 【blog】Markdown的css样式推荐

    参考博客 分享一款Markdown的css样式:https://www.cnblogs.com/zhangjk1993/p/5442676.html 美化Markdown输出的HTML文档:http: ...

  9. 【tmos】如何在Interceptor拦截器中注入其他数据

    光是这样是获取不到weixinConfig内容的 public class WebLoginInterceptor implements HandlerInterceptor { @Autowired ...

  10. mysql 原理 ~ DDL之mdl锁

    一 简介: MDL锁 二 具体 1 MDL锁   1 增删查改 申请MDL读锁   2 ddl语句       1. 拿MDL写锁      2. 降级成MDL读锁      3. 真正做DDL    ...