appium源码分析(十一)-getSize,getLocation
2015-09-07 13:55
281 查看
摘要
为什么需要将这两个放到一块儿来讲呢,因为他们两实际上都是依靠UiAutomator的Bounds属性值的,并且如果说我需要获取到元素的中点坐标的话,我就需要依赖这两个方法才能够解决正文
好的 我们先来看看geiSize吧,从字面的意思就是获取到它的大小,即元素的宽高了。public AndroidCommandResult execute(final AndroidCommand command) throws JSONException { if (command.isElementCommand()) { // Only makes sense on an element final JSONObject res = new JSONObject(); try { final AndroidElement el = command.getElement(); final Rect rect = el.getBounds(); res.put("width", rect.width()); res.put("height", rect.height()); } catch (final UiObjectNotFoundException e) { return new AndroidCommandResult(WDStatus.NO_SUCH_ELEMENT, e.getMessage()); } catch (final Exception e) { // handle NullPointerException return getErrorResult("Unknown error"); } return getSuccessResult(res); } else { return getErrorResult("Unable to get text without an element."); } }
现在看这些代码实际上都很简单了,还是一样 获取到AndroidElement的元素
再来获取到bounds。这个是Rect的类型。再来分别将其的长宽分别放到一个JsonObject对象里面。将该对象返回
下来看看getLocation
public AndroidCommandResult execute(final AndroidCommand command) throws JSONException { if (!command.isElementCommand()) { return getErrorResult("Unable to get location without an element."); } try { final JSONObject res = new JSONObject(); final AndroidElement el = command.getElement(); final Rect bounds = el.getBounds(); res.put("x", bounds.left); res.put("y", bounds.top); return getSuccessResult(res); } catch (final Exception e) { return new AndroidCommandResult(WDStatus.NO_SUCH_ELEMENT, e.getMessage()); } }
这里是将Bounds的坐顶点的X坐标以及Y坐标分别赋值到JsonObject的x,y上
所以如果说你想要获取到某个元素在屏幕的中点坐标的话,你就需要这两个方法的帮助了。
element = self.find_element(loc) startX = int(element.location['x']) startY = int(element.location['y']) endX = int(element.size['width'])+startX endY = int(element.size['height'])+startY centerX = (startX+endX)/2 centerY = (startY+endY)/2
以上就能够获取到元素中点的坐标了。
相关文章推荐
- Swift-边读边记-[0]
- Android软键盘强制弹出,隐藏输入法.
- Android高效加载大图、多图解决方案,有效避免程序OOM
- 【Android开发坑系列】之事件
- 两个简单实例,学会使用fragment
- IOS常用布局展示框架优缺点
- Android-使用Theme来解决启动app是出现的空白屏
- IOS 多线程编程指南:1介绍
- android 介绍0
- androidの自定义加载对话框ProgressDialog
- 解密短信木马为何屡杀不尽--android手机短信木马的攻与防
- IOS中开发App启动页之实现
- android模糊效果blur
- oc获取相册源码
- Android内核解读-Android系统的开机启动过程
- android-修改TextView中部分文字的颜色
- android 自定义dialog弹出和消失动画
- Android复制粘贴到剪贴板
- Android ListView滑动过程中控件显示重复/错误问题之原理分析及解决方案
- Android数据存储之SharePreference