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