获取控件
getText()
getEditText()
getButton()
getImage()
getImageButton()
getEditText()
getView()
getWebElement()
getWebUrl()
getCurretViews()
点击操作控件
clickButton()可以通过index或者text识别控件
clickOnView()首先获取控件然后通过clickOnView实现点击控件
clickOnScreen(float x, float y, int numberOfClicks) 点击指定的坐标
clickLongOnScreen(float x, float y, int time) 指定的坐标长按
滑屏操作
Solo.scrollToSide(KeyEvent.KEYCODE_DPAD_RIGHT);向右滑屏
Drag(float fromx, float toX, float fromy,float toY, int stepCount)拖动,step越少移动越快
跳转
goBack()
goBackToActivity("Activity名");跳转到指定的Activity
点击按键
按控件属性右下角的index定位,在遍历整个子对象时通常采用方式,先定位到父对象,再用这种方式取子对象
solo.clickOnButton(0);
如果按键上有文字属性
solo.clickOnButton("查询");
如果按键上的文字是图片展现出来的,系统中只有id属性时需要自行封装方法,solo类没有现成方法通过控件id操作案件,可以用以下方式操作有id的按键
solo.clickOnView(solo.getView("控件的ID"));
对编辑框进行输入
通过id定位到输入框元素
EditTextedittext=solo.getView(id);
对已定位到的控件输入text
solo.enterText(edittext, text);
获取控件文本属性
toString().trim() 是将获取的名字先转成字符,如果前后有空格,自动去掉空格
solo.getView("id").getClass().toString().trim();
长按控件
依据控件的text定位,并执行长按操作
solo.clickLongOnText(text);
依据控件中的text定位,且同一界面有多个相同的text时采用以下方式,其中match为int型,代表寻找第几个text
solo.clickLongOnText(text,match);
有时某个空间在当前屏幕找不到,需要滚动屏幕时采用以下方式,其中scroll为boolean型,为True时在找不到控件时会 自动滚动
solo.clickLongOnText(text, match, scroll);
菜单操作
点击某个菜单
solo.clickOnMenuItem(text);
下拉列表操作(Android称为Spinner控件)
依据text值选择所要的项
solo.isSpinnerTextSelected(text);
拖动控件
fromX, toX, x轴从某个点拖动到某个点
fromY, toY, Y轴从某个点拖动到某个点
solo.drag(fromX, toX, toY, stepCount);
solo.clickOnScreen(x, y);
solo.scrollDown() 向下拖动屏幕
solo.scrollToBottom() 滚动到屏幕底部
solo.scrollUp() 向上滚动屏幕
solo.scrollToTop() 滚动到屏幕顶部
断言方法
用于验证当前Activity 名称是否正确
solo.assertCurrentActivity(message, activityClass)
验证内存值的信息
solo.asserMemoryNotLow();
由于测试中引用了junit包,所以同城还可以用junit断言方法,验证语气结果与实际结果是否相符
Assert.assertEquals(expected, actual);
condtion得到是一个Boolean如果condition得到的是True用例通过
Assert.assertTrue(condition);
如果condition得到的是false 用例通过
Assert.assertFalse(condition);
对象非空判断
Assert.assertNotNull(object);
AssertasserNull(object);
对象与对象之间的比对
Assert.assertSame(expected, actual);