纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

appium定位元素java篇

5月5日 呛人心投稿
  1、关于没有name,没有ID的元素的定位通用篇
  解题思路:
  因为没有name,其实剩下的选择已不多,要么xpath,要么className。xpath木有好印象(稳定性不高,加之1。0x后需要写全路径,相当崩溃),我决定十分个人色彩的建议使用className。
  具体方法:
  用className获取所有该类型的元素;
  根据元素的位置确定元素的
  获取目标元素。
  示例:
  Listlisdriver。findElementsByClassName(android。widget。ImageV);获取ImageView的所有元素
  WebEelementtargetElelis。get(0);获取列表中第一个元素
  进阶:
  你可以自己定义一个className的常量,然后封装个方法,提供大家使用:
  publicListgetAllImges(){
  Listlisdriver。findElementsByClassName(AndroidClassName。IMAGEVIEW);
  
  }
  使用的时候,就只需要调用此方法就可以了
  此方法的好处:通吃的方法,基本可解决定位的问题;能解决多语言(自然语言)的困扰;
  缺点:因为系统需要去获取List,就目前来看,运行效率不是很高,那直接是可以用肉眼看的到的速度在跑。。。
  2、关于没有name,没有ID的元素的定位特用篇
  因为是特用,所以需要对页面元素做进一步的分析,找出其中的特性。这些特性主要为className,index,以及clickable等属性。
  场景1:同一个页面有10个ImageView对象,而我们的目标元素的index为4,而同为ImageView且index为4的页面只有2个。那我们就可以根据这2个条件来组合查询条件,提高效率。
  示例:
  Listlisdriver。findElementsByAndroidUIAutomator(newUiSelector()。className(android。widget。ImageV)。index(4));
  基于这个场景可以封装一个方法:
  publicListgetElementsByClassAndIndex(Stringclassname,intindex){
  L
  lisdriver。findElementsByAndroidUIAutomator(newUiSelector()。className()。index());
  
  }
  场景2:同一个页面有10个ImageView对象,而其中index为4的有5个,而这时我们发现我们的目标元素的是clickable的。然后review页面发现,同时满足上述条件的只有2个。那么。。。
  示例:
  Listlisdriver。findElementsByAndroidUIAutomator(newUiSelector()。className(android。widget。ImageV)。index(4)。clickable(true));
  同样可以封装一个方法:
  publicListgetElementsByClassAndIndexAndClickable(Stringclassname,intindex){
  L
  lisdriver。findElementsByAndroidUIAutomator(newUiSelector()。className()。index()。clickable(true));
  
  }
  场景3:在分析页面元素的时候发现,页面相对比较简单,而且其中只有目标元素的index为4。
  示例:
  driver。findElementByAndroidUIAutomator(newUiSelector()。index());
  同样得到一个方法
  publicWebElementgetElementByIndex(intindex){
  returndriver。findElementByAndroidUIAutomator(newUiSelector()。index());
  }
  3、关于输入框有默认text,且当你选中时,不会清空的清空的处理。
  类似的情况,用element。clear()是没有效果的。那怎么办呢?不急,appium提供了很多的操作,直击不行,我们就上组合拳。
  示例:
  publicvoidclear(WebElementel){
  el。click();选中输入框
  driver。sendKeyEvent(123);将光标移到最后
  Stringtxtel。getText();获取字符串长度
  for(inti0;txt。length();i){
  driver。sendKeyEvent(67);一个个的删除。。。。。
  }
  }
  4、关于UiAutomator无法识别的元素
  整体思路:不要忘了咱的手机是可以点击的。
  获取相对坐标,点击,就这么简单。(不用绝对坐标是保证程序能在不同的分辨率下运行)
  下面一起讨论下相对坐标的获取:找一个页面,这个页面上有相关的元素的位置与目标位置类似,或者根据这些元素能获取到目标的大致位置。
  上段代码,帮助理解:
  publicListgetFileMngPoint(){
  ListlistnewArrayList();
  WebElementscroldriver。findElementByClassName(AndroidClassName。HORIZONTALSCROLL);
  Listimgsscrol。findElements(By。className(AndroidClassName。IMAGEVIEW));
  以上仅获取类似位置的元素
  Pointe0getCenterPoint(imgs。get(0));
  Pointe1getCenterPoint(imgs。get(1),imgs。get(2));
  Pointe2getCenterPoint(imgs。get(3));
  Pointe4getCenterPoint(imgs。get(2),imgs。get(3));
  Pointe5getCenterPoint(getElementsByClassAndIndexAndClickable(AndroidClassName。IMAGEVIEW,0)。get(4));
  以上获取元素的中心坐标,相关方法是自己写的
  list。add(e0);
  list。add(e1);
  list。add(e2);
  list。add(e4);
  list。add(e5);
  
  }
投诉 评论 转载

appium定位元素java篇1、关于没有name,没有ID的元素的定位通用篇解题思路:因为没有name,其实剩下的选择已不多,要么xpath,要么className。xpath木有好印象……wifi测试发射功率灵敏度频偏IQxel操作说明1、Pc用网线连接仪器,配置PC的IP地址。2、n……图形化编程娱乐于教,Kittenblock实例,角色。。。跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同。关键的问题在于,带入感,我能给出的建议,就是咬咬牙……图形化编程娱乐于教,Kittenblock实例,蝙蝠。。。跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同。关键的问题在于,带入感,……【插件系列】CRX文件介绍讲解对象:【插件系列】CRX文件介绍作者:融水公子rsgz插件教程对象:CRX又称:扩展程序使用系统:Mac、Linux、Windows系统……快速提升谷歌SEO排名获取流量的关键因素(七。。。图片的排名在搜索引擎中是非常重要的一项。在整个网站排名来说,图片排名要比网页排名上来的要快,要想获得快速排名图片的优化是不可缺少的,一旦图片排名上来会带来很直观的流量。……方案作图之如何读题大家好,我是度兄。上篇文章给大家介绍了方案作图的解题思路,之后的几篇文章将会针对每一个解题步骤做详细的介绍,今天这篇文章介绍如何读题。万事开头难,好的开始是成功的一……什么是算法偏差?什么是算法偏差?CDA数据分析师出品2016年初,微软推出了AI聊天机器人Tay,该机器人旨在模仿好奇的少女的行为,并与Twitter用户进行精巧的讨论。该项目将展……推荐系统的美好世界推荐系统的美好世界我们为什么要关心推荐系统?对于大多数人来说,关注推荐系统的关键原因可能是金钱。对于亚马逊,Netflix和Spotify等公司而言,推荐系统可带来……VTP的基本配置实验一、网络拓扑图二、配置要求1配置PC机器的IP地址,子网掩码,网关;2规划VTP的工作模式和密码;3配置VTP;4trunk的配置;5检查V……camtasia9快捷键整理轨道媒体操作有不少朋友要我整理一下cs9的快捷键,我觉得鼠标操作其实已经很便捷了,干嘛还要键盘呢?所以呢,我今天的整理只是为了方便操作,不求大而全。另外在展现方式上,我想采用更直观的……【C语言】C语言简介讲解对象:【C语言】C语言简介作者:融水公子对象:C语言实质:是一种计算机程序设计语言特点:1广泛使用的面向过程……
继续,几百个超实用的网站,猛烈来袭(4)知乎上超过10万人推荐的网站,每天都值得一。。。自媒体都喜欢的16款手机小程序,做自媒体必。。。每当感到迷茫的时候,这4个网站会让你看到希。。。5个免费看电视剧电影网站五个超实用的资源搜索引擎!分享5个超级有用的视频网站,绝对良心让你的工资一千到一万的自学网站!每一个都。。。全网最全无广告、高质量资源搜索网站!还有。。。怎样用微信付账?5个特别实用的微信小程序,体验之后让你如获。。。一键找到删除你微信的好友,只需一个操作

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形