Appium使用教程_Android篇

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章