2、查找控件
1)通过名称查找
btn = driver.find_element_by_name("+")
2) 通过ID查找
start_btn =driver.find_element_by_id('com.cn21.ecloud:id/instruction_close_btn')
或 start_btn = driver.find_element_by_id('instruction_close_btn')
3)通过类名查找
child_text =parent.find_element_by_class_name('android.widget.TextView')
4)通过android_uiautomator查找
start_btn =driver.find_element_by_android_uiautomator('new UiSelector().clickable(true)')
以上find_element_by_XX 都是返回符合条件的第一个控件,如果要返回多个控件,可以调用 find_elements_by_XX, 返回的是一个list。
注意:如果找不到符合条件的控件,会抛出异常。
5)查找结点,不希望返回异常,写个函数就行了
def find_element_by_id_no_except(driver, id): element = None try : element = driver.find_element_by_id(id) except Exception,e: print Exception, ':', e return element |
3、模拟按钮点击
login_btn.click()
注意:有的点击如果需要等待动画、或者网络请求,建议等待一会:
import time time.sleep(2) # 睡眠2秒 |
4、输入框输入文本
user_input.send_keys('123456')
注意:Android如果要正确输入,需要把使用系统自带的输入法,第三方输入法无法正确输入。
5、模拟点击返回键
driver.press_keycode(4)
其中按钮的定义,由Android里的KeyEvent.java里定义的,所以其它的Android按钮也是支持的。
6、关闭driver
driver.quit()
注意:一定要记得关闭driver, 否则下次连接的时候可能会出异常,因为Appium以为你上次未关闭,会创建Session失败。
为了避免代码出现异常而没有关闭,可以在捕获异常时再关闭。
7、滑动界面
下面的例子,演示点击屏幕中间,并向上拉动(相当于查看列表下面的内容了)。
from appium.webdriver.common.touch_action import TouchAction def test_scroll_down(driver): screen = driver.get_window_size() action = TouchAction(driver) action.press(x=screen['width']/2,y=screen['height']/2) action.move_to(x=0,y=-screen['height']/10) action.release() action.perform() |
等等,怎么获取界面的属性来验证正确性?
8、获取界面属性,控件属性
1)获取当前Activity名称
activity = driver.current_activity
2) 获取屏幕宽高
screen = driver.get_window_size()
3)获取控件文本
mobile_name.get_attribute('text') 或者 mobile_name.text
4)获取控件类名
mobile_name.get_attribute('className')
5)判断控件是否显示
mobile_name.is_displayed() 或者 mobile_name.get_attribute('displayed')
6)获得控件位置
mobile_name.location
7)获得控件大小
mobile_name.size
8)查找控件子结点
parent.find_elements_by_class_name('android.widget.TextView')
同样:查找控件的其它方法,也适用于查找子结点。
对于交互后的验证,无法验证到具体的数据内容,可以验证当前的Activity,或者文本,或者列表是否为空等等。
更多参考:http://blog.csdn.net/crisschan/article/details/50416860