元素定位方式 

第一种:通过Appium1.6的Inspector来查看

具体安装方式前面的随笔已经介绍了:http://www.cnblogs.com/meitian/p/7360017.html
可以通过定位找到元素xpath或name
 
个人不推荐用这个方法,实际操作中发现,每次操作后点击刷新比较慢,而且有时左侧布局文件更新不及时,导致点击左侧屏幕的控件找不到元素,有时App Source根本就没更新
 

第二种:通过macaca的App inspector来定位元素

1.安装macaca-li
$ npm install macaca-cli -g
 
2.检查macaca环境
$ macaca doctor
只要打印出的结果都绿色的日志信息,就表示环境是好的
 
3.安装app-inspector
$ npm install app-inspector -g
 
4.使用方法
通过下面命令启动检测web界面,然后就在Safari中自动打开了【http://本地IP:5678】进行检测
$ app-inspector -u YOUR-DEVICE-ID(设备id)
 

iOS获得设备id的方法:

真机的获取方法:idevice_id -l
$ xcrun simctl list
获得下面的数据:
第一个括号内的就是手机的device id,第二个括号内是模拟器的状态
 
结果如下,也可以获得元素的name和xpath
 
说明:我目前使用第二种方式,1是直接刷新页面速度比appium中快点;2是没有很大延迟,刷新后点击元素图标一般都能找到元素
(使用时还遇到过一个问题,web打开时手机界面底部没展示全,通过键盘command和-号组合缩小页面,展示了全部内容)
 
遇到的问题:app-inspector我这用的模拟器,用真机的情况下一直报错。模拟器没问题
Error: connect ECONNREFUSED 127.0.0.1:8001
      at Object.exports._errnoException (util.js:1024:11)
      at exports._exceptionWithHostPort (util.js:1047:20)
      at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1150:14)

解决方法:
cd /usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD
open XCTestWD.xcodeproj
修改XCTestWD和XCTestWDUITests,修改bundle id,签名然后编译通过即可。(参考webdriveragent的更改方法,操作一致)

iOS操作元素

通过上面的方法能够获得元素的xpath和name(或accessibility id),然后对应到Appium中的命令如下:
accessibility id或name:
driver.find_element_by_name(“name或accessibility id")
driver.find_element(By.NAME,“name或accessibility id")
 
xpath:
driver.find_element_by_xpath(“xpath地址")
driver.find_element(By.XPATH,“xpath地址")
 
 
 

Appium1.6 定位iOS元素和操作元素的更多相关文章

  1. java-selenium定位元素和操作元素

    八种定位方式 一.By.id(id):通过ID 属性查找 HTML 源码 <a onclick="return false;" id="lb" name= ...

  2. 11月8日上午Jquery的基础语法、选取元素、操作元素、加事件、挂事件及移除事件

    jquery基础知识 1.jquery文件的引入,所有的js代码要写在下面那段代码下面. <script src="../jquery-1.11.2.min.js">& ...

  3. javascript根据元素自定义属性获取元素,操作元素

    写在前面:给某个或多个元素自定义属性data-tar,想获取data-tar='123'的元素来进行进一步的操作,如何实现? function getElementByAttr(tag,attr,va ...

  4. Javascript入门(二)变量、获取元素、操作元素

    一.变量 Javascript 有五种基本数据类型 number.String.boolean.undefined.null 一种复合类型:object 二.使用getElementById方法获取元 ...

  5. jquery的基础语法、选取元素、操作元素、加事件、挂事件及移除事件

    jquery基础知识 1.jquery文件的引入,所有的js代码要写在下面那段代码下面. <script src="../jquery-1.11.2.min.js">& ...

  6. Appium学习路—Android定位元素与操作

    一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...

  7. 如何借助浏览器Console使用Js进行定位和操作元素

    在进行Selenium自动化过程中,我们很难避免一些webdriver 很难定位到的一些元素(如:默认隐藏属性元素),那对于一些比较难定位到的元素,有什么好的解决办法?     其实我们都知道,Sel ...

  8. Appium Android定位元素与操作

    文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录 ...

  9. Android定位元素与操作

    一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...

随机推荐

  1. mysql 替代Oracle instr

    在迁移项目时遇到的,原项目的数据库使用的Oracle,现在要迁移到MySQL中,而项目中用到了Oracle的instr函数,而MySQL只能查找子串是否在父串中,没法按照出现的次数进行查找. 先来介绍 ...

  2. 19.python设置单线程和多线程

    1.单线程实例: 代码如下: from time import ctime,sleep def music(A): for i in range(2): print ("I was list ...

  3. 《算法》第四章部分程序 part 12

    ▶ 书中第四章部分程序,包括在加上自己补充的代码,图的几种补充数据结构,包括无向 / 有向符号图,有权边结构,有边权有向图 ● 无向符号图 package package01; import edu. ...

  4. HDFS 原理解析

    源自https://www.cnblogs.com/duanxz/p/3874009.html Namenode是整个文件系统的管理节点.它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件 ...

  5. C++中多态中构造函数与析构函数的调用

    做个实验,看一下成员变量的构造析构,父类子类的构造析构,以及虚函数对调用的影响. #include <iostream> using namespace std; class Member ...

  6. 浅谈 volatile 的实现原理

    在并发编程中我们一般都会遇到这三个基本概念:原子性.可见性.有序性.我们稍微看下volatile 原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行. ...

  7. tar 排除文件

    tar -cvf test.tgz test/ --exclude *.txt --exclude *.jpg

  8. day19-高阶函数、匿名函数

    map 函数 map 是一个在 Python 里非常有用的高阶函数.它接受一个函数和一个序列(迭代器)作为输入,然后对序列(迭代器)的每一个值应用这个函数,返回一个序列(迭代器),其包含应用函数后的结 ...

  9. VB-创建类模块DLL文件

    最近需要调用MSCOMM32.OCX控件,但是ABAP调用过程中发现无法同时发送多条记录,则需调整实现方式: a.创建DLL文件封装MSCOMM控件相关属性及方法 b.系统注册DLL文件 c.ABAP ...

  10. groovy语法

    1.注释1.1. 单行注释1.2. 多行注释1.3. GroovyDoc注释1.4. Shebang线2.关键词3.标识符3.1. 普通标识符3.2. 带引号的标识符4.字符串4.1. 单引号字符串4 ...