1. 程式人生 > 其它 >appium,元素定位和元素操作,使用uiautomatorviewer

appium,元素定位和元素操作,使用uiautomatorviewer

###

定位說三種定位:id,class,xpath

###

操作說3種,點選,輸入,獲取元素值,

###

程式碼示例:

from appium import webdriver
import time
import unittest


class Test_Demo(unittest.TestCase):

    def setUp(self):
        desired_caps={}
        desired_caps['platformName']='Android'
        desired_caps['platformVersion']='6.0'
        desired_caps[
'deviceName']='emulator-5554' desired_caps['noReset']='true' # 使用這個,就會記住上一次你的點選記錄, desired_caps['appPackage']='com.tencent.news' desired_caps['appActivity']='com.tencent.news.activity.SplashActivity' desired_caps['dontStopAppOnReset']='true' self.driver=webdriver.Remote('
http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(8) def tearDown(self): pass # driver.quit() #退出app def test_search_demo(self): self.driver.find_element_by_id("com.tencent.news:id/home_channel_search_box").click() self.driver.find_element_by_class_name(
"android.widget.EditText").send_keys("股票期權") self.driver.find_element_by_xpath("//*[@resource-id='com.tencent.news:id/search_history_title']").click() self.driver.implicitly_wait(5) text_ele = self.driver.find_elements_by_id("com.tencent.news:id/title_text") for item in text_ele: print(item.text) # print("text", text_ele) if __name__ == '__main__': unittest.main()

###

程式碼解釋:

注意1,desired_caps['noReset']='true' # 使用這個,就會記住上一次你的點選記錄,比如同意協議,不進行更新,這樣的彈框選擇

注意2,desired_caps['dontStopAppOnReset']='true',加上這個,就不用每次都重新啟動app了,這樣會大大的提高除錯程式碼的效率,很重要,

注意3,self.driver.implicitly_wait(5),隱式等待,這個很重要,有很多時候你明明是定位對了,但是就是報錯找不到元素,那就試試等待,一般會是這個問題,

注意4,元素的定位,定位方法有很多,到時候你再學學,

注意5,元素的操作,操作的方法有很多,到時候你再學學,

###

###