Appium1.6 定位iOS元素和操作元素

元素定位方式 

第一种:通过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的方法:

$ 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)

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地址")

时间: 2024-08-29 18:23:40

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

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

jquery基础知识 1.jquery文件的引入,所有的js代码要写在下面那段代码下面. <script src="../jquery-1.11.2.min.js"></script><!--引入的jquery一定是在最上面的,也要在其它引入的jquery文件上面--> 2.写jquery代码的位置 和js一样,jquery代码也是写在<script>开始和结束标签之间. <script type="text/javasc

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

一.变量 Javascript 有五种基本数据类型 number.String.boolean.undefined.null 一种复合类型:object 二.使用getElementById方法获取元素 方式一: 这里的元素,指html里的标签,通过内置docuement的 'getElementById' 方法获取页面上设置了 id 属性的元素, 获取一个html对象,并为其赋值, 先不赋值看个例子: <!DOCTYPE html> <html lang="en"&

(六-3)从查找元素到操作元素

在WebDriver中,将这些关于鼠标操作的方法封装在ActionChains类提供. Actions 类提供了鼠标操作的常用方法: contextClick() 右击 clickAndHold() 鼠标点击并控制 doubleClick() 双击 dragAndDrop() 拖动 release() 释放鼠标 perform() 执行所有Actions中存储的行为 文本框输入文本:sendkeys() 清空文本框:clear() 获取文本:getText()  ---> 只能取出标签中间的文本

aapium选择操作元素

Appium自动化 选择界面元素 操作元素 点击 拖拽 发送值 获取属性 根据appium获取的数据进行分析处理 总和能力:跟编程语言基础.领域的知识有关例如通信系统的协议结合.选择元素.操作元素(编程基础相当于内功.其他知识相当与外功,只有内外兼修才能把自动化工作做好) Appium的webdriver继承selenium中的webdriver from appium import webdriverimport time,traceback desired_caps = {}desired_

11-js操作元素

js操作HTML的元素属性: <html> <head> <title>js操作HTML的元素属性</title> <meta charset="UTF-8"/> <!-- js操作HTML元素属性学习: 获取元素对象 操作元素属性 获取: 元素对象名.属性名//返回当前属性的属性值.----固有 元素对象名.getAttribute("属性名");//返回自定义属性的值-----自定义 修改 元素对

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

一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能 下面是用monitor抓取到的页面元素 下面使用Appium Inspector定位的元素 二.元素定位   1.格式:find_element_by_定位方式(value) 通过id定位 (取resource-id的值): dr

每天一个JavaScript实例-操作元素定位元素

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-操作元素定位元素</title> <style> div#a{ width:500px; } div{ border:1px solid

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

在进行Selenium自动化过程中,我们很难避免一些webdriver 很难定位到的一些元素(如:默认隐藏属性元素),那对于一些比较难定位到的元素,有什么好的解决办法?     其实我们都知道,Selenium Webdriver他是支持,在脚本内调用Js脚本的,那JS才是网页元素定位的鼻祖,为什么不试试用JS呢?下面简单通过一个实例,介绍一下,使用JS在火狐控制台中定位元素的小技巧. 如下图:如何定位京东首页中的[手机.数码.京东通信]-[京东通信]-[自助服务]链接. 这个也是之前群里面朋友

Android定位元素与操作

一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能 下面是用monitor抓取到的页面元素 下面使用Appium Inspector定位的元素 二.元素定位   1.格式:find_element_by_定位方式(value) 通过id定位 (取resource-id的值): dr