Appium Remote webdriver調用


remote webdriver的模板

默認開啟4723端口接受webdriver請求

默認開啟4724用於和android通訊

#coding:utf-8
#Import the common package
import os
import unittest
from appium import webdriver
from time import sleep

#設置路徑信息
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class LoginAndroidTests(unittest.TestCase):
    def setUp(self):
        #初始化測試平台
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4.2'   #Android版本
        desired_caps['deviceName'] = '127.0.0.1:62001'  #連接到的設備名稱,這個是夜神模擬器的名稱
        #desired_caps['app'] = 'D:\apk\愛壁紙.apk'  #app的路徑
        desired_caps['appPackage'] = 'com.lovebizhi.wallpaper'  #包名
        desired_caps['appActivity'] = 'com.lovebizhi.wallpaper.WelcomeActivity'  #activity名稱
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
      
    def tearDown(self):
        self.driver.quit()
        
    def test(self):
        #測試導航頁
        print("start test...")

        #判斷是否安裝愛壁紙APP
        wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
        if wallpaper:
            #self.driver.remove_app("com.lovebizhi.wallpaper")
            sleep(8)
            # 點擊某一壁紙圖片
            self.driver.find_elements_by_id("com.lovebizhi.wallpaper:id/image1")[4].click()
            sleep(4)
            # 點擊設置壁紙
            self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/btSetup").click()
            sleep(5)
        else:
            self.driver.install_app("D:\apk\愛壁紙.apk")
            sleep(30)if __name__ == '__main__':
    suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

如何查看app的appPackage和APPactivity?

1、下載apktool-new的壓縮包,並解壓

2、雙擊decode.bat運行

3、將apk拖入decode.bat中回車即可得到對應apk的文件夾

4、用記事本或notepad++等打開apk文件夾中的AndroidManifest.xml即可看到appPackage和APPactivity名稱

 

在romote webdriver初始化的時候

desired_caps['appPackage'] = 'com.lovebizhi.wallpaper'
desired_caps['appActivity'] = 'com.lovebizhi.wallpaper.WelcomeActivity

已經確定了是要測試哪個APP和APP中的哪個界面。直接運行Python腳本時就會跳轉到對應的界面,此時在test中就不能操作在本界面中不存在的元素。否則會報錯

如:想要在主體部分寫卸載該APP或其他APP,就會報錯

#coding:utf-8
#Import the common package
import os
import unittest
from appium import webdriver
from time import sleep

#設置路徑信息
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class LoginAndroidTests(unittest.TestCase):
    def setUp(self):
        #初始化測試平台
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4.2'
        desired_caps['deviceName'] = '127.0.0.1:62001'
        #desired_caps['app'] = 'D:\apk\愛壁紙.apk'
        desired_caps['appPackage'] = 'com.lovebizhi.wallpaper'
        desired_caps['appActivity'] = 'com.lovebizhi.wallpaper.WelcomeActivity'
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

        
      
    def tearDown(self):
       
        self.driver.quit()
        
    def test_1(self):
        #測試導航頁
        print("start test1...")

        #判斷是否安裝愛壁紙APP
        wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
        if wallpaper:
            self.driver.remove_app("com.lovebizhi.wallpaper")
            sleep(8)
        else:
            self.driver.install_app("D:\apk\愛壁紙.apk")
            sleep(30)
                  

if __name__ == '__main__':
    suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

報如下錯誤:

所以在初始化之后就不要使用卸載或安裝程序了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM