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)
報如下錯誤:
所以在初始化之后就不要使用卸載或安裝程序了