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,元素的操作,操作的方法有很多,到时候你再学学,

###

 

 

###

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

上一篇:大厂Android岗高频面试问题:说说你对Zygote的理解!


下一篇:Android SharedPreferences的理解与使用