上一篇列举了Robotium的操作,主要是点击和长按的操作。这里说下除了点击和长按外的其他操作。
拖动操作
void drag (float fromX, float toX, float fromY, float toY, int stepCount)
选定两个位置,进行拖动操作(这里的拖动操作只会记录你的起点和终点,而不会理会你的运动路径)
参数:
fromX-起始位置的X坐标
toX-终点的X坐标
fromY-起始位置的Y坐标
toY-终点的Y坐标
stepCount-分几步完成
返回:
无
void goBack()
相当于按下系统返回键
参数:
无
返回:
无
隐藏键盘,在软键盘弹出来的时候使用
参数:
无
返回:
无
void sendKey(int key)
向应用发送键盘的key值,用于模拟键盘操作。
注:不要向非测试界面发送sendKey,会报错
参数:
key-键盘的Key值,如UP,DOWN,ENTER,MENU等
返回:
无
void sleep(int time)
让测试停止若干时间以便进行下一步操作
参数:
time-停止的时间,单位是毫秒,如sleep(2000),是停止了2秒钟
返回:
无
通过菜单的索引按下菜单中制定的item
参数:
index-该item的索引值
itemPerRow-每行有多少个item
返回:
无
void pressSpinnerItem (int spinnerIndex, int itemIndex)
点击下拉式菜单栏的item
参数:
spinnerIndex-下拉式菜单栏的索引值
itemIndex-要点击的item的索引值,负数表示需要向上滚动才能找到的item,正数表示向下滚动可以找到的item
返回:
无
滚动操作
boolean scrollDown ()
滚动条进行向下操作
参数:
无
返回:
true-如果可以进行滚动的话
false-如果已经滚动到底部,无法滚动
boolean scrollUp ()
滚动条进行向上操作
参数:
无
返回:
true-如果可以进行滚动的话
false-如果已经滚动到顶部,无法滚动
boolean scrollUpList (android.widget.AbsListView list | int index)
操作一个list向上滚动
参数:
list-被操作的滚动条名称
index-被操作的滚动条索引,如果是0,表示只有一个可以滚动的list
返回:
true-如果可以进行滚动的话
false-如果已经滚动到顶部,无法滚动
boolean scrollListToBottom (android.widget.AbsListView list | int index)
操作一个list向下滚动一直滚动到底部
参数:
list-被操作的滚动条名称
index-被操作的滚动条索引,如果是0,表示只有一个可以滚动的list
返回:
true-如果可以进行滚动的话
false-如果已经滚动到底部,无法滚动
boolean scrollListToTop (android.widget.AbsListView list | int index)
操作一个list向上滚动一直滚动到顶部
参数:
list-被操作的滚动条名称
index-被操作的滚动条索引,如果是0,表示只有一个可以滚动的list
返回:
true-如果可以进行滚动的话
false-如果已经滚动到顶部,无法滚动
void scrollToBottom ()
向下滚动屏幕,一直滚动到底部
参数:
无
返回:
无
void scrollToTop ()
向上滚动屏幕,一直滚动到顶部
参数:
无
返回:
无
void scrollListToLine (android.widget.AbsListView list | int index , int line)
操作滚动条滚动到list的某一行
参数:
参数:
list-被操作的滚动条名称
index-被操作的滚动条索引
line-滚动到第几行
返回:
无
水平滚动
void scrollToSide (int side [, float scrollPosition])
水平滚动屏幕,可限制操作滚动的位置
参数:
side-水平滚动的方向,LEFT或者RIGHT
scrollPosition-滚动屏幕的比例,从0到1,如果是0.5,则只会对一半的屏幕进行滚动
返回:
无
scrollViewToSide (android.view.View.view view, int side [, float scrollPosition])
水平滚动某一个view,可限制操作滚动的位置
参数:
view-滚动的view名称
side-水平滚动的方向,LEFT或者RIGHT
scrollPosition-滚动屏幕的比例,从0到1,如果是0.5,则只会对一半的屏幕进行滚动
返回:
无
其余特定控件操作
屏幕方向
void setActivityOrientation (int orientation)
设置屏幕方向,即横屏还是竖屏
参数:
orientation-设置方向,LANDSCAPE表示横屏,PORTRAIT表示竖屏
返回:
无
datePicker控件
void setDatePicker (android.widget.datePicker datePicker | int index, int year, int monthOfYear, int dayOfMonth)
给datePicker控件设置日期
参数:
datePicker-操作的datePicker的名称
index-操作的datePicker的索引值
year-设置年的值,如2013
monthOfYear-设置月份的值
dayOfMonth-设置日的值
返回:
无
timePicker控件
void setTimePicker (android.widget.timePicker timePicker | int index, int hour, int minute)
给timePicker控件设置时间
参数:
timePicker-操作的timePicker的名称
index-操作的timePicker的索引值
hour-设置小时的值
minute-设置分钟的值返回:
无
progressBar控件
void setProgressBar (android.widget.ProgressBar progressBar | int index, int progress)
设置进度条的进度
参数:
progressBar-操作的进度条控件的名称
index-操作的进度条控件的索引值
progress-设置进度条的进度
返回:
无
slidingDrawer控件
void setSlidingDrawer (android.widget.SlidingDrawer slidingDrawer| int index, int status)
设置SlidingDrawer控件的开和关
参数:
slidingDrawer-操作的SlidingDrawer控件名称
index-操作的SlidingDrawer控件的索引值
status-设置的开关状态,solo.OPEN表示开,solo.CLOSE表示关
返回:
无
输入方法enter和type
void enterText (android.widget.EditText editText | int index, String text)
对指定的editText输入文本
参数:
editText-指定的editText控件名称
index-指定的editText索引值
text-输入的文本
返回:
无
void enterTextInWebElement (By by, String text)
对指定的webEditText输入文本
参数:
by-识别webElement的属性text-输入的文本
返回:
无
void typeText (android.widget.EditText editText | int index, String text)
对指定的editText输入文本
参数:
editText-指定的editText控件名称
index-指定的editText索引值
text-输入的文本
返回:
无
void typeTextInWebElement (By by, String text)
对指定的webEditText输入文本
参数:
by-识别webElement的属性text-输入的文本
返回:
无
void typeTextInWebElement (WebElement webElement, String text)
对指定的webEditText输入文本
参数:
webElement-指定的webElement控件名称text-输入的文本
返回:
无
void clearText(int index)
通过定位索引清除当前edittext的值
参数:
index 当前edittext的索引值
返回:
无
void clearText(android.widget.EditText EditText)
通过定位android控件清除当前edittext的值
参数:
android.widget.EditText 当前edittext的名称
返回:
无
void clearTextInWebElement(By by)
通过定位By的一些属性清除web控件的text文本
参数:
By-By方法中的属性,有id,name,tagName,textContent,className,xpath,cssSelector等
返回:
无
清除日志,不多解释
返回:
无
双指操作
void pinchToZoom (android.graphics.pointF startPoint1, android.graphics.pointF startPoint2, android.graphics.pointF endPoint1, android.graphics.pointF endPoint2)
用两支手指进行夹紧和扩张的操作
参数:
startPoint1-第一只手指的起始位置
startPoint2-第二只手指的起始位置
endPoint1-第一只手指的终止位置
endPoint2-第二只手指的终止位置
返回:
无
void swipe (android.graphics.pointF startPoint1, android.graphics.pointF startPoint2, android.graphics.pointF endPoint1, android.graphics.pointF endPoint2)
用两支手指进行同时移动的操作
参数:
startPoint1-第一只手指的起始位置
startPoint2-第二只手指的起始位置
endPoint1-第一只手指的终止位置
endPoint2-第二只手指的终止位置
返回:
无
void rotateLarge (android.graphics.pointF center1, android.graphics.pointF center2)
大幅度进行两只手指画半圆? 不确定,这个方法没用过
参数:
center1-第一个半圆的圆心,取值为[0, Pi]
center2-第二个半圆的圆心,取值为[Pi, 3*Pi]
返回:
无
void rotateSmall (android.graphics.pointF center1, android.graphics.pointF center2)
小幅度进行两只手指画半圆? 不确定这个方法,没用过
参数:
center1-第一个半圆的圆心,取值为[0, Pi]
center2-第二个半圆的圆心,取值为[Pi, 3*Pi]
无
操作activity
void goBackToActivity(String name)
返回到指定的activity
参数:
name-返回到的activity
返回:
无
void finalize()
终止当前的solo对象并删除activity的监控器
参数:
无
返回:
无
void finishOpenedActivity()
终止所有打开的activity对象,一般用在teardown()方法中
参数:
无
返回:
无
截图操作
void takeScreenshot ([String name, int quality])
对当前屏幕进行截屏操作,结果存放在/sdcard/Robotium-Screenshots/路径下
注:需要在AndroidManifest.xml中设置写权限,即android.permission.WRITE_EXTERNAL_STORAGE
参数:
可以不使用任何参数
name-截图的名称
quality-截图的质量,其实是压缩比例。取值从0到100,值越大,质量越高,默认80
返回:
无
void startScreenshotSequence (String name [, int quelity, int frameDelay, int maxFrames ])
开始一系列的连续截图操作,结果存放在/sdcard/Robotium-Screenshots/路径下,命名方式为name_加序列号,从0开始。不支持多个模拟器同时截屏。
注:需要在AndroidManifest.xml中设置写权限,即android.permission.WRITE_EXTERNAL_STORAGE
参数:
name-截图的前缀
quality-截图的质量,其实是压缩比例。取值从0到100,值越大,质量越高,默认80
frameDelay-两次截图的时间间隔,单位毫秒,建议不小于100,默认400
maxFrames-最多截多少张,默认100
返回:
无
void stopScreenshotSequence()
结束连续截图操作
参数:
无
返回:
无