appium查找元素心得

在使用appium测试app的时候并没有selenium那么好用,为什么呢?

个人觉得是因为定位方式太少,selenium中的xpath已经强大到基本可以找到任何一个元素。

但是在appium中xpath并不好用,而且经常是很长一串的,效果不好。基本都用resource_id来定位,那么问题来了,没有resource_id怎么办,用content-desc,这是个帮助盲人使用的东西,可以使用find_element_by_accessibility_id来定位,那么问题又来了如果这个content-desc里面有空格换行符什么的怎么办?如何用类似xpath中的contains的东西来定位呢?这里有个思路,通过class_name来查找包含要找的元素的一个组,通过遍历每个元素,判断元素的get_attribute(‘name‘)中是否包含关键词来确定是否是我们要找的元素。

elements = driver.find_elements_by_class_name(‘xxx‘):

for element in elements:

  if key in element.get_attribute(‘name‘):

    print ‘element find‘

但是有个问题必须说明下get_attribute(‘name‘)有可能返回content-desc也有可能返回text,一般来说如果没有content-desc的话会返回text

时间: 2024-10-13 09:09:49

appium查找元素心得的相关文章

appium for android 查找元素方法总结

使用appium测试app自动化查找元素时比较麻烦,没有selenium查找web页面元素方便, 并且局限性也比较高,使用起来不是太灵活. 那下面介绍下我们一般经常使用到的一些查找元素的方法(已锤子手机为例). 有两个工具可以用来查找元素:安卓sdk自带的uiautomator viewer:appium最新版1.0.2.   建议使用uiautomator viewer,个人感觉使用起来要方便些,包括复制元素的值也比较方便. 先链接锤子手机: 方法有很多,: 通过xpyth定位:findEle

10.0 花里胡哨的各个方位滑动查找元素

在介绍滑动查找元素之前,请先容许我插上一嘴--之前章节有更新过  Uiobject uicollection uiselector   这里还有一个新东西叫做  uiscrollable这个class它里面是封装了所有的滑动处理的相关操作! name这个叫做uiscrollable的类里面有那些东西了: Scrollintoview-----获取某个可滑动区域,然后滑动这个区域里面的元素查找我们所需要的元素 #后面的text查找条件可以用组合查找也可以用 textcontains 关键之查找te

使用再哈希算法查找元素

使用再哈希算法查找元素: /* hash search, using rehash method if find k, return if not find, d=(d+step)%m, rehash find */ int SearchHash(HashTable H, KeyType k) { int d, d1, m; m = H.tableSize; d = d1 = k%m; while(H.data[d].key != -1) { if(H.data[d].key == k) //h

javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式

原文:javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式 一.背景:一个表单中,要修改一些li中有class=box的样式,将它的background设置为red红色.一般的做法是我们可以先找到父级元素 ,然后由父级元素找到所有相关tagName,最后,来一个if判断,如果class属性为box,则修改之 var oUl = document.getElementById("ul1");                          

初探appium之元素定位(1)

无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多资料,帖子都是说的appium自带的Inspector这个工具进行的元素定位.而笔者不知道是电脑还是什么的问题,这个工具是无法使用的.今天给大家说的是另一个工具. uiautomatorviewer 这个工具是在我们Android的SDK的tools的文件夹里面的.使用方法也很简单.这里我以安卓模拟

查找元素在list中的位置以及折半查询

问题 查找某个值在list中的位置 解决思路 可以用折半查询的方法解决此问题. 解决(Python) #! /usr/bin/env python #coding:utf-8 #折半查找某个元素在list中的位置 def half_search(lst,value,left,right): length = len(lst) while left<right: middle = (right-left)/2 if lst[middle]>value: right = middle-1 elif

_DataStructure_C_Impl:在顺序表中查找元素

// _DataStructure_C_Impl:Search #include<stdio.h> #include<stdlib.h> #define MaxSize 100 #define IndexSize 20 typedef int KeyType; //元素的定义 typedef struct{ KeyType key; }DataType; //顺序表的类型定义 typedef struct{ DataType list[MaxSize]; int length; }

二分法查找元素位置

普通二分法查找元素: #include <stdio.h> #include <stdlib.h> int BinarySearch(int* a, int n, int pos) { int left = 0; int right = n-1; while (left <= right) { int mid = left+(right-left)/2; if(pos == a[mid]) { return mid; } else if(pos < a[mid]) {

JavaScript之查找元素

在IE6还大行其道的时候,原生JS操作DOM有各种各样的问题,jQuery应运而生,它解决了人们的痛点,对各种浏览器及其各种版本的兼容是相当的赞,而且易上手(不包括jQuery2.0),但他毕竟是库,性能上面还是弱于原生的.如今许多公司已经放弃兼容IE6和7甚至8,所以原生JS操作DOM可以搬上台面了,尤其是原生在查找元素方面的扩展可以让你不在依赖jQuery,下面详说原生查找元素最基本的三个document.getElementById()接受一个参数:要取得的元素的ID,查找到则返回该元素,